java虚拟机
文章平均质量分 87
xinzun
终不似,少年游
展开
-
java虚拟机面试干货【肆】_垃圾回收:判断条件
上篇文章:java虚拟机面试干货【叁】_JVM内存结构由上文我们可以大略总结出,在JVM中线程私有的变量是保存在栈上的,公共的对象保存在堆上,而静态变量保存在堆空间中的方法区(PermGen)上。由于系统分配给JVM的内存空间也是有限的,当一个对象不再使用时我们应该把它回收以释放空间,下面就说说垃圾回收(GC)的事儿。对象是否存活垃圾回收的第一步就是要判断,原创 2018-03-11 16:06:28 · 230 阅读 · 0 评论 -
java虚拟机面试干货【拾】_G1 GC的回收机制
上篇文章:java虚拟机面试干货【玖】_G1 GC的空间划分简单来说,G1 GC的收集分为4个阶段:年轻代GC,并发标记周期,混合收集和full GC。原创 2018-05-14 01:24:21 · 1513 阅读 · 0 评论 -
java虚拟机面试干货【玖】_G1 GC的空间划分
之前有看过介绍G1回收器的知识,但是一直没有去完成一个整理。接着今天的功夫,好好把这部分知识总结一下。什么是G1 GC通过前面的文章我们知道,在JDK 1.6版本之前,我们一般是使用ParNew+CMS两个垃圾回收器来完成JVM中的垃圾回收的。但是它们的实现并不算特别的高效,详情可见之前的文章总结(链接)。有鉴于此,JDK从1.7版本开始全新引入了一个新的垃圾回收期,就是今天要说的G1 GC。和之...原创 2018-05-11 17:12:12 · 618 阅读 · 0 评论 -
java虚拟机面试干货【叁】_JVM内存结构
上篇文章:java虚拟机面试干货【贰】_类的加载本文说收JVM的内存结构,主要分为6个区域:程序计数器可看做是当前线程执行的字节码的行号指示器,字节码解释器就是通过改变这个计数器的值来获取下一条需要执行的字节码指令,完成分支、循环、跳转和异常处理等功能。虚拟机栈每创建一个线程时,JVm就会为这个线程创建一个对应的栈,所以栈是线程私有的原创 2018-03-09 17:08:53 · 337 阅读 · 0 评论 -
java虚拟机面试干货【贰】_类的加载
上篇文章:java虚拟机面试干货【壹】_字节码生成本文讲讲当java文件已经被编译成class字节码后虚拟机如何加载。加载等级JVM平台提供三层ClassLoader,分别为Bootstrap ClassLoader、ExtClassLoader和AppClassLoader。Bootstrap ClassLoader最高层加载器原创 2018-03-09 16:39:02 · 230 阅读 · 0 评论 -
java虚拟机面试干货【陆】_垃圾回收:垃圾收集器
上篇文章:java虚拟机面试干货【肆】_垃圾回收:回收算法本文我们说说垃圾收集器,先明确几个概念:串行(serial):单线程,按顺序依次执行多任务;并行(Parallel):多线程,多个相同任务在一个实体上执行;并发(Concurrent):多线程,多个不同任务在一个实体上执行;明确好上面概念以后,有助于我们介绍下面的垃圾收集器:S原创 2018-03-11 18:05:44 · 316 阅读 · 0 评论 -
java虚拟机面试干货【壹】_字节码生成
今天开始总结一个新的系列,时间略紧简单总结。先把一些概念性的东西梳理出来,详细内容日后有机会再填充。争取今天可以总结完。本系列文章内容总结自许令波(君山)老师的《深入分析Java Web技术内幕(修订版)》和周志明老师的《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》。两本书都墙裂推荐阅读,附上链接: 总体流程简单原创 2018-03-09 15:30:13 · 299 阅读 · 0 评论 -
java虚拟机面试干货【柒】_class的执行
上篇文章:java虚拟机面试干货【陆】_垃圾回收:垃圾收集器在之前的文章中,我们大致总结了JVM的执行过程如下:当class文件被类加载器加载到内存(栈)后,由执行引擎对字节码进行解析或等效处理后,最后输出结果。下面就说说这个执行引擎是如何工作的。栈帧栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,原创 2018-03-11 20:39:32 · 449 阅读 · 0 评论 -
java虚拟机面试干货【伍】_垃圾回收:回收算法
上篇文章:java虚拟机面试干货【肆】_垃圾回收:判断条件上篇文章我们分析了GC中对要回收对象的判断条件,这篇文章我们说说GC回收算法。标记-清除算法即mark-sweep算法。通过两个阶段完成,一是标记阶段,筛选出已经没有关联到GC Roots调用链的对象;二是清除,将这些标记处的对象删除。示意图如下:但这个算法有2个问题:一是原创 2018-03-11 17:33:39 · 247 阅读 · 0 评论 -
java虚拟机面试干货【捌】_JVM配置参数
本文总结一下JVM中常用的配置参数。堆内存相关的JVM参数-Xms设置Java应用程序启动时的初始堆大小。-Xmx设置Java应用程序能获得的最大堆大小。-Xss设置线程桟的大小。-XX:MinHeapFreeRatio设置堆空间最小空闲比例。当堆空间的空闲内存小于这个数值时,JWM便会扩展堆空间。-XX:MaxHeapFreeRatio设置堆空间的最大空闲比例。当堆空间的空闲内存大于这个数值时,...原创 2018-05-08 09:17:03 · 346 阅读 · 0 评论