
深入理解java虚拟机
吃不胖的茶叶蛋
这个作者很懒,什么都没留下…
展开
-
在Java堆中创建对象的全过程
一、对象的创建在语言层面上,常仅仅是一个new关键字而已,而在虚拟机中,又是怎样的呢? 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 类加载通过后,接着就为新对象分配内存。对象所需内存的大小在类加载完成后便可完全确定。内存分配有两种方式:“指针碰撞”(B原创 2016-08-11 16:17:54 · 4038 阅读 · 0 评论 -
java运行时数据区
根据《深入理解java虚拟机》第二章内容整理而得。 首先,贴一张结构运行时数据区结构图: java虚拟机运行时数据区由 程序计数器、虚拟机栈、本地方法栈、堆、方法区组成。(HotSpot虚拟机并不区分虚拟机栈和本地方法栈) 1.程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码(Java 字节码原创 2016-08-11 15:47:50 · 483 阅读 · 0 评论