JDK27正式发布,我却建议你按住别升
9 月 15 日,JDK 27 正式 GA,一口气带了 9 个 JEP。如果你正打算把生产环境迁上去,我建议先把手从键盘上拿开。理由跟"JDK 27 好不好"没关系,是因为它是非 LTS。免费更新窗口到 2027 年 3 月就结束,那时 JDK 28 接棒。
序:你真的学会 Java 了吗?
一个让我沉默了很久的面试现场那是几年前的一次面试。候选人有七年经验,简历上写着"精通 Java 并发与 JVM 调优"。我问他:"Integer a = 127; Integer b = 127; a == b 的结果是什么?"他答:"false,因为 == 比较的是引用。
JVM-11: 运行时常量池与字符串常量池
篇九把 Java 堆拆开了,篇十把方法区和元空间讲透了。这两篇各自都提到过一个东西:字符串常量池。堆里有它的对象,元空间里有它的账本,两边都跟它沾边。这一篇就专门讲它,顺带把运行时常量池一起说清楚,这俩名字太像,混着背的人不在少数。
JDK 27升级实战:对象头压缩省下两成堆内存
刚 GA 的 JDK 27 动了两个你从来没写过、但一直在用的默认值:对象头默认换成压缩布局,每个对象的头部从 96 位缩到 64 位;G1 成为所有环境下的默认垃圾收集器,而在单核、小内存的容器里,以前的 JVM 会悄悄给你上 SerialGC。
ZGC 的染色指针是什么黑科技,10ms 停顿背后的原理面试加分
去年把一个 96G 堆的风控服务从 G1 切到 ZGC,GC 日志里最扎眼的变化是这个:G1 时代 Mixed GC 的停顿常态 120ms 上下,偶发 400ms;切完之后,gc,phases 日志里所有 Pause 阶段加起来不到 1ms。不是 10ms,是零点几毫秒。
偏向锁被删掉了:用了20年的优化,为什么不要了
如果你写过 synchronized,你可能不知道它背后有个东西叫"偏向锁"。它从 JDK 6 开始存在,专门优化一种场景:同一个锁,从头到尾只有一个线程在抢。这种场景下,JVM 会把锁"偏向"给这个线程——之后它再进来,连 CAS 都不用做,直接过。
一个Java对象到底占多少内存?对象头里的Mark Word有什么秘密?
我们每天都在创建Java对象:User user = new User();上一篇我们讲了:这个对象到底是在堆里,还是栈里?但还有一个问题:一个看似简单的Java对象,到底占用了多少内存?对象头的信息很多人第一次学习Java时,会认为:一个对象的大小 = 所有字段大小相加。
百元级超声波切割刀,手动党必备
前段时间看到markword上面有人分享超声波切割刀的相关DIY内容,DIY的配件在拼多多券后才120元,再加上自己打印个外壳一百出头就能搞定一个超声波切割刀。而市面上成品的超声波切换刀,价格都要300左右起步,这个DIY只要不到一半的价格。