Java虚拟机
文章平均质量分 78
Caluzeman
知识海洋里的一叶小舟
展开
-
Java虚拟机(四)--垃圾收集器之G1收集器
随着Java9的发布,G1收集器也成为了默认收集器,作为前沿技术,研究下还是很有必要的,通过查阅很多资料,整理我觉得比较适合初学者理解的G1收集器。 一 先了解一些必要的概念。 1 Region G1收集器将堆内存分为大小相等的若干个region,采用逻辑分代概念。分为Eden、Survivor、Old、Humongous四个区域。 这里主要说下...原创 2018-05-09 15:10:18 · 362 阅读 · 0 评论 -
Java虚拟机(一)--初体验
先上图一 程序计数器(PC寄存器) 作用:当前线程通过这个计数器的值来选取下一条需要执行的指令 特点:1 每个线程都有一个独立的程序计数器 2 如果执行的是一个java方法,计数器记录的是正在直行的虚拟机字节码地址 如果执行的是一个Native方法,计数器值为空 3 此内存区是唯一一个在java虚拟机规...原创 2018-05-03 16:34:56 · 136 阅读 · 0 评论 -
Java虚拟机(二)
2 对象创建 a 虚拟机遇到new指令,首先根据该指令参数在常量池中定位一个类的符号引用,并检查这个符号引用的类是否被加载、解析、初始化,如果没有,必须先执行相应的类加载过程 b 虚拟机为新生对象分配内存 分配内存的两种方法:指针碰撞、空闲列表,这两种方法的区别就在于堆中内存是否规整,如果规整就用指针碰撞 并发问题:由于创建对象在虚拟机中非常频繁,即使仅仅修...原创 2018-05-04 18:25:52 · 119 阅读 · 0 评论 -
Java虚拟机(三)--垃圾收集器
下面介绍的垃圾收集器没有哪一种是任何场景都完美适用的,只有大家根据自己系统的情况做出正确的选择才是最好的。 先介绍两个概念: 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行,而垃圾收集程序运行于另一...原创 2018-05-07 18:48:45 · 141 阅读 · 0 评论 -
Java虚拟机(五)--类加载机制
一 类的加载过程 1 加载 1)通过一个类的全限定名来获取定义此类的二进制流 2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 3)在内存中生成一个代表这个类的java.lang.Class对象 在加载过程中,一个非数组的类可以使用系统提供的引导类加载器加载,也可以使用用户自定义的类加载器加载。而数组类本身不通过类加载器创建,它...原创 2018-05-14 19:12:15 · 123 阅读 · 0 评论