王威拓

Keep on going never give up

深入理解JVM—HotSpot虚拟机中对象的分配、布局和访问

1.对象的分配 1)对象的创建    虚拟机遇到new指令时,先检查指令的参数能否在常量池里定位到一个类的符号引用,并检查这个符号引用是否已被加载、解析和初始化过,否则执行相应的类加载过程。 2)内存分配    类加载检查通过后,虚拟机会为新生对象分配在类加载完成时已确定大小的内存空间。 - 内存分配方式    为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划分出来。存在两种分......

深入理解JVM—运行时数据区

1.概述    Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如下图所示。 2.Java虚拟机栈(Java Virtual Stacks)    虚拟机栈描述的是J......