java中Thread启动流程分析
前言 进程是操作系统进行资源分配和调度的基本单位,线程是操作系统能够进行运算调度的最小单位,一个进程可以有很多线程,每个线程并行执行不同的任务,java中的线程就是Thread类。 简单使用 public class Cli...
java中如何优雅的停止一个线程
前言 强制停止一个线程是不安全的,线程什么时候可以停止,只有线程自己知道,我们模拟主线程中启动一个工作线程,主线程睡眠3秒后去停止工作线程。 标志位 public class ThreadCloseGraceful {...
关于文件的BOM头
什么是BOM头 Unicode的学名是"Universal Multiple-Octet Coded Character Set",简称为UCS。UCS可以看作是"Unicode Character Set"的缩写。在UCS 编码中...
一致性哈希原理及实现
场景描述 假如我们现在有3台缓存服务器,当有一张图片要缓存时,我们希望缓存均匀的分布在3台服务器上,可以使用如下公式来判断要缓存到哪台服务器, hash(图片名称) % 3 当我们想增加或减少服务器时,如增加到4...
java实现单例模式的各种写法
饿汉式 public class SingletonObject1 { private SingletonObject1() { } private static final SingletonObject...
java处理emoji表情
前言 emoji表情也是使用Unicode编码的,但UTF8编码是不支持的。我们如果想存储emoji到数据库,一般有两种方法,以mysql为例,将数据库编码从 utf8 改为 utf8mb4,第二种就是做一个转换,将emoji表情转...
java线程池入门
前言 使用线程池有以下好处: 创建销毁线程消耗系统资源,线程池可以复用已创建的线程。 控制并发的数量,并发数量过多,可能导致资源不足,服务器崩溃。 对线程进行统一管理。 简单使用 import...
使用位运算查找只出现一次的数字
一个数组中只有一个数字出现一次,其他数字都出现两次,请找出这个数字 class Solution { public int singleNumber(int[] nums) { int res = 0;...
java开发maven插件入门
前言 在项目中我们使用到了大量的官方的maven插件,如clean,compiler,今天我们自己开发一个插件来更好的理解插件的原理。 创建maven插件项目 官方插件命名的格式为 maven-xxx-plugin,非...
SqlServer中获取随机值
使用rand()函数 select rand() 输出 0.0329578509224172 rand()函数获取区间(0,1)之间的float类型的数,但不支持在查询中添加一列随机值 select rand...