随笔分类 -  JVM

摘要:G1的特点 除了G1的其余垃圾回收器的特点是,年轻代和老年代是各自独立且连续的内存块,年轻代收集使用单edn+s0+s1进行复制算法,老年代收集必须扫描整个老年代区域。都是以尽可能少而快速地执行GC为设计原则。 G1是一款面向服务端应用的收集器,应用在多CPU和大容量内存的环境中,在实现高吞吐量的同 阅读全文
posted @ 2020-06-07 19:32 xd会飞的猫 阅读(817) 评论(0) 推荐(0)
摘要:七种垃圾回收器类型 GC的约定参数 DefNew——Default New Generation Tenured——Serial Old ParNew——Parallel New Generation PSYoungGen——Parallel Scavenge ParOldGen——Parallel 阅读全文
posted @ 2020-06-03 23:16 xd会飞的猫 阅读(1709) 评论(0) 推荐(2)
摘要:垃圾回收器 V.S. 垃圾回收算法 垃圾回收算法有四种,分别是引用计数(已经不用了)、复制拷贝、标记清除、标记整理。一般的实现采用分代回收算法,根据不同代的特点应用不同的算法。垃圾回收算法是内存回收的方法论。垃圾回收器是算法的落地实现。和回收算法一样,目前还没有出现完美的收集器,而是要根据具体的应用 阅读全文
posted @ 2020-06-03 22:15 xd会飞的猫 阅读(274) 评论(0) 推荐(0)
摘要:组织架构 严格来说,StackOverflowError和OutOfMemoryError都属于错误,而不是异常。 java.lang.StackOverflowError 1 public class StackOverflowErrorDemo { 2 public static void me 阅读全文
posted @ 2020-06-02 22:43 xd会飞的猫 阅读(184) 评论(0) 推荐(0)
摘要:整体架构 强引用 强引用是默认支持,当内存不足的时候,JVM开始垃圾回收,对于强引用的对象,就算是出现了OOM也不会回收对象。 强引用是最常见的普通对象引用,只要还有强引用指向对象,对象就存活,垃圾回收器不会处理存活对象。一般把一个对象赋给一个引用变量,这个引用变量就是强引用。当一个对象被强引用变量 阅读全文
posted @ 2020-06-01 13:21 xd会飞的猫 阅读(1060) 评论(3) 推荐(3)
摘要:如何理解GCRoots? 为了解决引用计数法的循环引用问题,Java使用了可达性分析的方法。GC Roots是一组活跃的引用,通过一系列名为GC Roots的对象作为起始点,沿着该对象向下搜索,如果一个对象到GC Roots没有任何引用链相连,则说明对象不可用。 哪些可以作为GC Roots的对象? 阅读全文
posted @ 2020-06-01 11:38 xd会飞的猫 阅读(294) 评论(0) 推荐(0)
摘要:GC垃圾回收 JVM大部分时候回收的都是新生代(伊甸区+幸存0区+幸存1区)。按照回收的区域可以分成两种类型:Minor GC和Full GC(MajorGC)。 Minor GC:只针对新生代区域的GC,大多数Java对象的存活率都不高,Minor GC非常频繁,回收速度快。 Full GC:发生 阅读全文
posted @ 2020-05-31 09:47 xd会飞的猫 阅读(1058) 评论(1) 推荐(2)
摘要:堆体系结构 一个JVM实例只存在一个堆内存,堆内存的大小是可调节的。类加载器读取类文件后,需要把类、方法、常量、变量放在堆内存中,保存所有引用类型的真实信息,以方便执行器指向,堆内存分为三个部分:年轻代、老年代、永久代。 Java7之前,堆内存在逻辑上分为:年轻代、老年代、永久代。物理上分为:年轻代 阅读全文
posted @ 2020-05-30 12:49 xd会飞的猫 阅读(741) 评论(0) 推荐(0)
摘要:JVM JVM运行在操作系统之上,与硬件没有直接的交互。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。 J 阅读全文
posted @ 2020-05-29 12:15 xd会飞的猫 阅读(367) 评论(0) 推荐(0)