![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
木_工
这个作者很懒,什么都没留下…
展开
-
虚拟机-运行时数据区
1.程序计数器计数器表示当前线程所执行的字节码的行号。线程私有,属于线程私有的内存区域。2.Java虚拟机栈线程私有,描述Java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。一个方法从调用到执行完成对应一个栈帧在虚拟机栈中的入栈和出栈过程。规定的异常情况有两种:1.线程请求的栈的深度大于虚拟机...原创 2019-01-09 17:55:25 · 190 阅读 · 0 评论 -
JVM--对象
以HotSpot和内存区域Java堆为例,介绍HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程。1.对象的创建1)类的加载检查虚拟机遇到new指令,首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类的加载过程。2)虚拟机为新生对象分配内存对象所需内存大小在类加载完的时...原创 2019-01-28 16:16:50 · 131 阅读 · 0 评论 -
垃圾收集器与内存分配策略--判断对象是否可被回收
1.引用计数法给每个对象添加一个以引用计数器,缺点:难以解决循环引用问题2.可达性分析算法通过一系列GC Roots 对象作为起点,从这个节点往下搜索,如果一个对象是GC Roots不可达的,则被认为是可回收的。GC Roots主要包括1)虚拟机栈的局部变量表中引用的对象,2)静态字段引用的对象,3)常量池中引用的对象,4)本地方法栈中引用的对象3.不同的引用强度4.生存还是死亡被列...原创 2019-02-19 18:23:09 · 151 阅读 · 0 评论 -
JVM垃圾回收面试总结
一、 技术背景你要了解吧按照套路是要先装装X,谈谈JVM垃圾回收的前世今生的。说起垃圾回收(GC),大部分人都把这项技术当做Java语言的伴生产物。事实上,GC的历史比Java久远,早在1960年Lisp这门语言中就使用了内存动态分配和垃圾回收技术。设计和优化C++这门语言的专家们要长点心啦~~二、 哪些内存需要回收?猿们都知道JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、...转载 2019-02-21 11:45:56 · 167 阅读 · 0 评论