JVM
深入理解JVM的运行原理。为提升自己,从中级升入高级段位做准备
大当家_白
这个作者很懒,什么都没留下…
展开
-
JVM--Java虚拟机的类加载机制
参考:《深入理解Java虚拟机》Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换、解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个该过程被称为虚拟机的类加载机制类的生命周期一个类型从被加载到虚拟机内存中开始、到卸载出内存为止,它的整个生命周期会经历加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloadin.原创 2020-06-30 14:56:52 · 89 阅读 · 0 评论 -
JVM-对象创建时堆内存是如何运作的
参考:《深入理解Java虚拟机》当讨论对象如何创建?如何布局以及如何访问这些问题的时候。 必须把谈论范围限定在具体虚拟机和集中在某一块区域内才有意义。《深入理解Java虚拟机》的作者对HotSpot虚拟机在Java堆中对象的内存分配、布局以及访问的全过程进行了深入的探讨。本人对这些问题加以理解和学习,加深对JVM的认识。问题一:使用new关键字创建对象的时候,对象是如何创建的呢?当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否在常量池中定位到一个类的符号引用,并检.原创 2020-06-28 22:36:54 · 977 阅读 · 0 评论 -
JVM -- JVM中垃圾回收器
参考:《深入理解Java虚拟机》,徐无忌老师的教学视频参考博客:https://www.jianshu.com/p/9e70097807ba上图为HotSpot虚拟机中的垃圾收集器新生代的垃圾收集器:Serial ParNew Parllel Scavenge老年代的垃圾收集器:CMS Serial Old Parallel Old上图中如果收集器之间存在连线,说明可以搭配使用,但不是一成不变的,由于维护和测试兼容性测试的成本,在JDK8中将Serial+...原创 2020-06-23 03:56:00 · 126 阅读 · 0 评论 -
JVM -- 垃圾回收GC
参考《深入理解JVM》 。以及张颜渊、徐无忌老师的视频垃圾回收的历史远比Java久远,在1960年诞生于麻省理工学院的Lisp是第一门使用内存动态分配和垃圾回收技术的语言,其作者就思考过垃圾回收需要完成的三件事情:哪些内存需要回收 什么时候回收 如何回收这三个问题也是我们学习JVM垃圾回收机制需要回答的问题一)垃圾回收器在对堆内存进行垃圾回收时,需要判定哪些对象已经“死去”,即需要判断对哪些对象进行回收?1、引用计数法在对象中添加一个引用计数器,每当对象被引用时,加1,...原创 2020-06-21 12:44:34 · 185 阅读 · 0 评论 -
JVM --- java的内存分布
堆:用来存放对象实例的一块内存区域,几乎所有对象和数组的创建都是在java堆中。它的唯一目的就是存放对象实例 堆可以分为新生代和老年底。新生代又可以分为Eden区,From space ,to space三块内存区域方法区:用来加载类信息(包含类信息,方法信息,字段信息)、静态变量,常量以及编译后的代码等java栈:Java方法执行的一块内存区域,每一个方法的调用都会创建一个栈帧,每个方法从调用到结束,就对应着一个栈帧在java栈中入栈到出栈的过程。在栈帧都包含:局部变量表...原创 2020-06-20 22:07:00 · 141 阅读 · 0 评论