随笔分类 -  jvm

JVM类加载之创建对象的过程
摘要:JVM对象的创建 new一个对象到底发生了什么? 1.VM遇到new关键字:首先检查是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否被加载,验证,准备,解析,初始化过,如果没有,必须先执行相应的类加载过程 2.类加载检查通过后,VM为新生对象分配内存,对象所需的内存空间大小在类 阅读全文

posted @ 2019-03-26 19:46 红绿森林 阅读(532) 评论(0) 推荐(0)

JVM类加载机制一
摘要:类加载的过程 什么是类加载? Java编译器会将我们编写好的代码编译成class字节码文件,JVM会把这些class字节码文件加载到内存中,并对加载的数据进行校验、准备、解析并初始化,这个过程就是类加载机制。类加载分为三个阶段:加载,连接,初始化。 这三个阶段都是在程序运行期间完成的。其中加载,校验 阅读全文

posted @ 2019-03-26 12:59 红绿森林 阅读(152) 评论(0) 推荐(0)

JVM垃圾回收机制四
摘要:GCRoots与可达性分析 Java中的四种引用 强引用、软引用、弱引用、虚引用。这四种引用的强度是逐渐减弱的,JVM垃圾回收的力度是逐渐增强的。 四种引用的作用 1、可以让程序员通过代码来控制对象的生命周期 2、有利于JVM判断哪些引用是否回收。 强引用 强引用有引用变量回收时,永远不会被垃圾回收 阅读全文

posted @ 2019-03-26 12:56 红绿森林 阅读(128) 评论(0) 推荐(0)

JVM垃圾回收机制三
摘要:垃圾回收器 分代垃圾回收常见的垃圾回收器 判断一个垃圾回收器好坏的标准 1、吞吐量越高越好 2、工作线程暂停时间越短越好。 Serial垃圾回收器 串行回收器时最古老的最基本的垃圾回收器,工作线程会产生较长时间的停顿,只使用一个线程去回收。新生代使用复制算法,老年代使用标记压缩算法。 特点:它是单线 阅读全文

posted @ 2019-03-25 22:09 红绿森林 阅读(214) 评论(0) 推荐(0)

JVM垃圾回收机制二
摘要:对象的回收 垃圾的回收涉及的几个问题:何时回收,由谁回收,怎样回收。这几个问题我们一一来解决。 1、何时回收 对象的生死判定 对象达到什么条件才能判断这个对象已经无用了。常见的判断对象生死的方法有两种: (1)引用计数法 给每个对象添加一个引用计数器,只要有地方引用到这个对象,这个对象的计数器就会加 阅读全文

posted @ 2019-03-25 18:15 红绿森林 阅读(161) 评论(0) 推荐(0)

JVM垃圾回收机制一
摘要:JVM内存分配与回收 JVM 分代 JVM把堆分为年轻代和老年代,年轻代又分为1个Eden区和2个Survivor区,Eden和Survivor的内存的大小比例是8:1:1。 为什么要分代? 很大的原因就是分代之后便于垃圾回收,提高回收效率。如果不分代,所有的对象全部都分配在一块大的内存上,那么每经 阅读全文

posted @ 2019-03-24 17:22 红绿森林 阅读(191) 评论(0) 推荐(0)