随笔分类 - 笔记系列
摘要:本文重点介绍JVM运行时数据区的整体概况,其中堆和方法区等比较复杂的会在GC的部分学习。另外本文还学习了JVM的指令集,涉及到的常用的一些指令,通过查看JVM规范手册,还确定每一个是如何使用,并与运行时数据区进行对应。运行时数据区,自增的字节码指令执行,局部变量表,栈帧,this,iadd,invoke指令
阅读全文
摘要:Java的内存模型,即JMM。依托于操作系统的存储结构,JVM作为虚拟机相当于操作系统之上的一个软件。因此,本文先介绍了操作系统层面的存储结构、硬件级的数据一致性问题以及相对应的一些策略等的知识,这里面也涉及到指令乱序执行的问题,给出了验证的代码。然后结合JVM对于软件层面的一些内存屏障的实现,例如volatile、synchronized关键字。最后是比较重要的java的对象和内存的关系,包括了类的创建过程以及在内存中的排布状态细节,这里包括了通过java代理的使用来观察对象的大小等实际代码的操作。
阅读全文
摘要:类在JVM的生命周期包括加载、链接和初始化。也就是loading、linking和initializing。前一篇博文已经介绍了Class文件和类加载器的内容,本文主要介绍另外的linking和initializing。同时也会记录分析一个关键性问题,就是静态变量和成员变量对于赋默认值和赋初始值的区别,这个区别会导致一些问题,为了避免这些问题,会用到volatile关键字。
java,jvm,linking,verification,preparation,resolution,initializing,volatile。
阅读全文

浙公网安备 33010602011771号