Java 中常说的常量池到底是什么

常量池的划分 Class 文件常量池 运行时常量池 字符串常量池 1. Class 文件常量池 Class 文件常量池指的是编译生成的 class 字节码文件,其结构中有一项是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后进入...

2019-05-11 10:04:51

阅读数 22

评论数 0

JDK 1.6 synchronized 的锁优化

背景 在 JDK 1.6 中对锁的实现引入了大量的优化。 目的 减少锁操作的开销。 JDK 1.6 以后的锁优化 在看下面的内容之间,希望大家对 Mark Word 有个大体的理解。Java 中一个对象在堆中的内存结构是这样的: Mark Word 是这样的: 1. 适应性自旋锁 自旋锁的思想...

2019-04-20 21:49:53

阅读数 27

评论数 0

Minor GC 和新生代对象的晋升

背景 Java 中的对象优先在 Eden 分配,当 Eden 区满时会触发 Minor GC。 新生代对象晋升到老年代有多种情况 触发 Minor GC 时,Eden 区和一个 Survivor 区中存活的对象大于另一个 Survivor 区的大小,则通过分配担保机制进入老年代。 若对象太大, ...

2019-02-27 10:42:35

阅读数 35

评论数 0

Java 中的锁优化

jdk1.6 开始 JVM 对 synchronized 关键字做了大量的锁优化。 自旋锁 通过 CAS 来自旋直到获取锁,占用 CPU 资源,但不会进行线程状态的切换。 适合用于线程竞争不激烈,短任务的场景。 线程竞争激烈的情况下,自旋会占有 CPU,从而使系统的吞吐量降低。 锁消除 JIT 编...

2018-10-18 21:40:22

阅读数 36

评论数 0

从字节码角度理解静态方法和实例方法的调用

微信公众号:Java 知其所以然关注可了解更多的教程。问题或建议,请公众号留言; 实例方法的调用 代码 public class App {  &amp...

2018-10-09 17:27:54

阅读数 127

评论数 0

堆和栈的区别

2018-09-20 18:41:20

阅读数 39

评论数 1

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