作者:liuxiaoshui

Java 9为何要将String的底层实现由char[]改成了byte[]

Question: public static void main(String[] args) { String s = new String("abc"); // 在这中间可以添加N⾏代码,但必须保证s引⽤的指向不变,最终将输出变成abcd System.out.println(s);

liuxiaoshui liuxiaoshui 发布于 2023-12-07

记录一次腾讯云人脸模型创建不小心踩的坑

记录一次腾讯云人脸模型创建不小心踩的坑 public void createFaceModel(String name,String driverId,long gender,String photo) throws TencentCloudSDKException { // 实例化一个认证

liuxiaoshui liuxiaoshui 发布于 2023-12-03

ConcurrentHashMap源码分析

jdk1.8,ConcurrentHashMap源码分析 初始化及使用 private static Map<Integer,Integer> map1 = new ConcurrentHashMap<>(); map1.put(1,1); new里做了啥? 啥都没干 public Concurre

liuxiaoshui liuxiaoshui 发布于 2023-11-30

AQS之BlockingQueue源码跟踪记录

以ArrayBlockingQueue为例,使用如下 int BOUND = 10;//阻塞队列容量 BlockingQueue<Integer> queue = new ArrayBlockingQueue<Integer>(BOUND); queue.put();//超过队列容量时则put()

liuxiaoshui liuxiaoshui 发布于 2023-11-26

ReentraintLock中park()和unpark()

关于park()阻塞线程的唤醒方式 Park阻塞线程唤醒有两种方式: 1、中断 2、unlock->release()->unpark() 中断唤醒: interrupt()存在的意义 早期停止线程的方式是Thread里有个native的方法stop0(),相当于linux里的kill -9,会产生

liuxiaoshui liuxiaoshui 发布于 2023-11-25

Thread之sleep、join、yield、wait、notify

一、sleep方法 线程释放CPU进入休眠,但不会释放锁(synchronized),释放CPU,不释放锁 这里面有个比较经典的用法,代码中循环太快,导致年轻代的GC频繁或者GC时间久,可以通过Thread.sleep(0)释放CPU,让GC线程去执行回收 经典用法:线程批任务导致cpu占比很高,通

liuxiaoshui liuxiaoshui 发布于 2023-11-23

java对象头锁状态分析及锁的升级记录

对象头组成 32位虚拟机对象头markword 64位虚拟机对象头markword 现在我们虚拟机基本是64位的,而64位的对象头有点浪费空间,JVM默认会开启指针压缩,所以基本上也是按32

liuxiaoshui liuxiaoshui 发布于 2023-11-23

操作系统底层初识

名词解释 时钟周期 时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作,例如从存储器中读取一个字节,或者进行一次加法运算。时钟周期是由CPU的主频决定的,主频越高,时钟周期越短,CPU的运算速度越快。1</

liuxiaoshui liuxiaoshui 发布于 2023-11-20

JS里if(undefined)判断问题

关于js里if(变量)的判断 不是专业前端的,隔一阵总会迷糊这些个undefined,null,‘’等的判断, 干脆直接发篇文章吧 上代码,一目了然 let a = undefined; let b = null; let c = ''; let d = 0;

liuxiaoshui liuxiaoshui 发布于 2023-11-18