![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java虚拟机
菜鸟欧
这个作者很懒,什么都没留下…
展开
-
HotSpot虚拟机对象的创建
1.虚拟机遇到一条new指令,首先从运行常量池中定位到这个类的符号引用,并检查该类是否被加载,解析,初始化,如果没有则对该类进行加载 2.类加载之后,则虚拟机为该对象分配内存。类加载之后能确定该类所需的内存空间大小,把一块大小确定的内存区域分配给该对象。当堆中内存是绝对对等的可以采用“指针碰撞”方式;如果对中内存不对等,则可以采用“空闲列表”方式; 指针碰撞:把所有用过的内存放在一边,空闲的放在原创 2015-12-18 09:50:15 · 346 阅读 · 0 评论 -
java虚拟机-运行时数据区域
1.程序计数器: 一块较小的内存空间,可以看作当前线程执行的行号指示器。通过程序计数器来选取下一条需要执行的字节码指令,分支,循环,跳转等都通过程序计数器完成。是线程私有的,每一个线程拥有自己的程序计数器。是内存区域唯一一个不存在内存溢出的。 2.java虚拟机栈: 线程私有的。是描述java方法执行的内存模型,每个方法执行时都会创建一个栈帧用于存储局部变量,操作数栈,动态链接,方法出口等信息原创 2015-12-18 09:23:25 · 694 阅读 · 0 评论