![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
时光吹老了好男孩
非诚勿扰
展开
-
垃圾回收原理及算法
垃圾回收过程:垃圾回收算法一般要做两件事情:1.发现无用的对象,2.回收无用对象占用的空间。 垃圾回收机制保证可以将“无用的对象”进行回收。无用的对象指的就是没有任何变量引用该对象。Java的垃圾回收器通过相关算法发现无用对象,并进行清除和整理。 垃圾回收相关算法:1.引用计数法:堆中每个对象都有一个引用计数。被引用一次,计数加1. 被引用变量值变为null,则计数减1,直到计数为0,则表示变...原创 2018-03-14 17:03:49 · 255 阅读 · 0 评论 -
类加载机制,双亲委派模型
类装载过程: 1.加载:根据路径找到类加载到内存中 2.验证:验证class类的准确性 3.准备:给类中的静态变量分配空间 4.解析:虚拟机将常量的符号引用变为直接引用,符号引用只是一个标示,而直接引用就是指向内存中的地址 5.初始化:对静态变量和静态代码块进行初始化工作 类加载器分类: 1.jvm角度:启动类加载器和其它类加载器 2.Java开发角度:启动类加载器,扩展类加载器,...原创 2019-08-13 21:38:55 · 122 阅读 · 0 评论 -
JVM的组成部分及解释
JVM主要分为类加载器,运行时数据区,执行引擎,本地库接口。 流程是类加载器将代码转化为字节码,运行时数据区再将字节码加载到内存中,而系统底层并不能识别字节码,这是需要命令解析执行引擎把字节码转化为指令,cpu通过调用本地库接口执行这些指令。 运行时数据区又分为堆,方法区,虚拟机栈,本地方法栈,程序计数器。 堆:内存中最大的一块,负责存储实例对象,所有线程共享 方法区:用于存储类信息,常量...原创 2019-08-13 22:55:40 · 252 阅读 · 0 评论 -
垃圾回收器的分类
垃圾回收器分为新生代和老年代垃圾回收器。 新生代垃圾回收器:Serial(单线程)、ParNew(多线程)、Parallel Scavenge(多线程) 老年代垃圾回收器:Serial Old(单线程)、Parallel Old(多线程)、CMS(标记-清除算法) 整堆回收器:G1 新生代垃圾回收器一般采用复制算法回收垃圾,优点是效率高,缺点是内存利用率低 老年代垃圾回收器一般采用标记-...原创 2019-08-13 23:05:31 · 243 阅读 · 0 评论