自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(17)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 Flutter实现绘制芬香小程序二维码海报,并保存到相册

效果展示准备工作引入依赖插件qr_flutter: ^3.0.1cached_network_image: ^1.0.0导入图片处理包import 'dart:ui' as ui;实现代码入口文件 share_content_post.dartclass ShareContentPost extends StatefulWidget { String bgUrl;...

2019-10-21 01:28:31 2801

原创 Java如何在两个线程之间共享数据?

Java 里面进行多线程通信的主要方式就是共享内存的方式,共享内存主要的关注点有两个:可见性和有序性原子性。Java内存模型(JMM)解决了可见性和有序性的问题,而锁解决了原子性的问题,理想情况下我们希望做到“同步”和“互斥”。有以下常规实现方法:将数据抽象成一个类,并将对这个数据的操作作为这个类的方法,这么设计可以和容易做到同步,只要在方法上加”synchronized“将R...

2019-09-15 23:38:27 3070 2

原创 Java中 volatile 关键字的作用

Java 语言提供了一种稍弱的同步机制,即 volatile 变量,用来确保将变量的更新操作通知到其他线程。volatile变量具备两种特性,volatile 变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取 volatile类型的变量时总会返回最新写入的值。特点变量可见性:其一是保证该变量对所有线程可见,这里的可见性指的是当一个线程修改了变量的值,那么新的值对于其他线程...

2019-09-15 23:38:05 817

原创 Java线程池工作过程

【Java线程池工作过程】线程池刚创建时,里面没有一个线程。任务队列是作为参数传进来的。不过,就算队列里面有任务,线程池也不会马上执行它们。当调用 execute() 方法添加一个任务时,线程池会做如下判断:a) 如果正在运行的线程数量小于 corePoolSize,那么马上创建线程运行这个任务;b) 如果正在运行的线程数量大于或等于 corePoolSize,那么将这个任务放入队...

2019-09-15 23:37:44 938

原创 Java中synchronized 和 ReentrantLock 的区别?

两者的共同点:都是用来协调多线程对共享对象、变量的访问都是可重入锁,同一线程可以多次获得同一个锁都保证了可见性和互斥性两者的不同点:4. ReentrantLock 显示的获得、释放锁,synchronized 隐式获得释放锁5. ReentrantLock 可响应中断、可轮回,synchronized 是不可以响应中断的,为处理锁的不可用性提供了更高的灵活性6. Reentra...

2019-06-10 23:09:13 1158 1

原创 Java线程池的原理

一、线程池的特点线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。他的主要特点为:线程复用;控制最大并发数;管理线程。二、线程池的原理每一个 Thread 的类都有一个 start 方法。 当调用 start 启动线程时 Java 虚拟机会调用该类的...

2019-06-04 00:05:47 114

原创 SpringMVC动态切换多个数据源解决方案(自测可用)

SpringMVC动态切换多个数据源解决方案1.数据源配置 <!-- 事务 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <propert...

2018-03-20 01:14:54 7127 5

原创 使用ES6语法进行Base64的编码和解码

使用ES6语法进行Base64的编码和解码

2017-12-08 01:09:35 6532 1

原创 Promise在工作中常用的几种示例

Promise在工作中常用的几种示例

2017-12-08 01:08:39 353

原创 Java字符串转数字(不使用jdk工具方法)

Java字符串转数字不使用jdk自带的转换方法

2017-12-08 01:02:52 1764 1

转载 git常用命令

创建 repo: git init 添加修改到暂存区: git add <file> 提交暂存区修改到当前分支: git commit -m “<log message>" 查看当前状态(分支指向,change信息): git status 比较工作区文件与最新版本差别: git diff HEAD — <file> 显示已提交的所有文件列表: git show --p

2017-03-04 18:36:59 244

原创 Xshell无法连接虚拟机解决办法

网络连接是否被占用 .防火墙是否关闭了.网线是否插好了.

2017-03-04 18:27:59 842

原创 工作中常用的Linux命令

切换到root用户 :sudo su -获取文件列表中最新更改的前5个:ll -t | grep -v ^total | head -5ll -t | head -6查看端口是否被占用 :netstat -anp | grep port lsof -i:port实时查看日志:tail -f 日志名less 查看日志:shift+g 最后 ctrl+b 上一页重启nginx:nginx

2017-03-04 18:23:20 335

转载 js格式化日期时间的工具方法

js格式化日期时间的工具方法

2017-02-08 23:05:44 260

原创 【James邮件服务器开发】在Linux系统上部署James邮件服务器

1.准备工作 下载james安装包 http://mirrors.cnnic.cn/apache//james/server/james-binary-2.3.2.1.tar.gz 必要的环境JDK 等2.安装过程把James上传到服务器(我上传到了/opt/下) 直接解压apache-james-2.3.2.1.tar.gz 安装包 解压后的文件结构如下:

2016-11-21 22:55:56 1110

原创 【常用快捷键】intellij idea 中类似Eclipse自动补全变量名称和属性名称的快捷键

intellij idea 默认快捷键模式下自动补全变量名称 : Ctrl + Alt + v自动补全属性名称 : Ctrl + Alt + f

2016-10-31 23:33:31 28039 3

原创 【JavaMail开发】使javamail-1.4.2 发送邮件时中文附件乱码或显示"??"的解决办法

使用mail-1.4.1.jar发送邮件时中文附件乱码或显示"??"的解决办法.

2016-08-18 21:30:22 622

Netty权威指南

Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

2018-09-10

amtlib.dll(支持Adobe 64位)

ps在线图片编辑器是一个专业的在线ps照片处理软件。绿色免安装,直接在您的浏览器上用它修正,调整和美化您的图像。

2018-09-01

redis-desktop-manager-0.9.3.817

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

2018-09-01

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除