自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 常量池、运行时常量池和字符串常量池,三者有什么关系和区别

三者的关系:在编译阶段产生常量池,在类加载阶段常量池转换为运行时常量池,在运行阶段处理字符串时使用字符串常量池(字符串常量池在类加载之前就已经被创建好了)。常量池运行时常量池字符串常量池内容字面量+符号引用常量+符号引用+直接引用字符串对象引用位置.class文件方法区1.7之前在方法区,1.7开始在堆内存使用范围单个类或接口单个类或接口整个JVM共享。

2025-07-26 22:56:39 427

原创 非公平锁比公平锁快在哪?

最近在复习 AQS 和 ReentrantLock 时,发现有一个问题没有去细想过,都说非公平锁的性能比公平锁要好,为什么会更好?有些资料说是因为非公平锁减少了线程切换带来的消耗,那么是在哪里减少了切换?《Java并发编程的艺术》一书中说是一个线程释放锁后可能再次获取锁,而再次获取成功的概率很大,其他线程只能在队列中等待,所以减少了线程切换。我看的一篇博客说是一个线程释放锁并唤醒阻塞的线程时,来了一个插队的新线程,新线程执行很快,抢到锁后很快就释放了,阻塞的线程完全唤醒后就不需要再次阻塞。

2025-06-23 21:48:48 944

原创 Java——HashMap底层详解

HashMap是一种用于存储键值对的、线程不安全的数据结构。JDK1.7版本的HashMap底层是用数组+链表的方式实现的。在发生hash冲突时,会在冲突位置形成链表,即链地址法。这种方式在冲突过多的情况下,链表会特别长,影响查找效率。JDK1.8开始引入了红黑树,当链表长度超过8且数组容量到达64时(没到64会优先扩容),会将链表转换为红黑树,这样就可以提供查找性能。当然,一般而言,即使是几十上百万的数据量,链表长度也很难超过8,所以红黑树一般是用来应对DoS攻击之类的。

2024-10-09 07:53:07 1043 1

空空如也

空空如也

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

TA关注的人

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