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...