JVM学习02-GC算法与种类】的更多相关文章

JVM学习02:GC垃圾回收和内存分配 写在前面:本系列分享主要参考资料是  周志明老师的<深入理解Java虚拟机>第二版. GC垃圾回收和内存分配知识要点Xmind梳理 案例分析1-(GC日志分析示例) package com.hs.jvm; import java.sql.Time; import java.sql.Timestamp; import java.text.SimpleDateFormat; public class Test { public Object instance…
GC 算法 GC 即 Garbage Collection 垃圾回收.JVM 中的 GC 99%发生在堆中,而 Java 堆中采用的垃圾回收机制为分代收集算法.即将堆分为新生代和老年代,根据不同的区域使用不同的垃圾回收算法. 1. 确认垃圾的算法 1.1 引用计数法 给每个对象设置一个引用计数器,每有一个地方引用此对象时,计数器 +1,引用失效计数器 -1.当对象计数器为0时,将会被垃圾回收. 引用计数器无法解决循环引用的问题.当AB两个对象都无其他对象引用,且 A 对象引用 B 对象,B 对象…
GC 算法与种类 对于垃圾收集(GC), 我们需要考虑三件事情:哪些内存需要回收?如何判断是垃圾对象?垃圾回收算法有哪些? 一.GC的工作区域 1.不是GC的工作区域 (1)程序计数器.虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭: (2)栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具有确定性. 在这几个区域不需要过多考虑回收的问题,因为方法结束或线程结束时,内存自然就跟随着…
Java虚拟机JVM学习02 类的加载概述 类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构. 加载.class文件的方式: 1.从本地系统中直接加载 2.通过网络下载.class文件 3.从zip,jar等归档文件中加载.class文件 4.从专有数据库中提取.class文件 5.将Java源文件动态编译为.class文件 类的加载的最终产品是位于堆区中…
一.在JVM中什么是垃圾?如何判断一个对象是否可被回收?哪些对象可以作为GC Roots的根 垃圾就是在内存中已经不再被使用到的空间就是垃圾. 1.引用计数法: 内部使用一个计数器,当有对象被引用+1,没有就-1,但是没有办法解决循环引用的问题,JVM不采用此类回收法 2.枚举根节点可达性分析(GC Root) 它必须是一组活跃的引用 思路:通过一系列名为GC Roots的对象作为起始点,从这个被称为GC Root的对象开始向下进行搜索,如果一个对象达到GC Roots 没有任何的引用链相连时,…
我们前面说到了JVM的常用的配置参数,其中就涉及了GC相关的知识,趁热打铁,我们今天就学习下GC的算法有哪些,种类又有哪些,让我们进一步的认识GC这个神奇的东西,帮助我们解决了C 一直挺头疼的内存回收问题. 一.GC的概念 首先在介绍GC概念之前,我们先知道下为什么GC,然后我们再讲解GC.众所周知,JAVA 语言,与C语言不同,Java内存(堆内存)的分配与回收由JVM垃圾收集器自动完成,比如 C语言自己定义的变量,不用时需要自己回收这个变量 .JAVA这就是自动完成了,自动检测,无用的垃圾,…
我们前面说到了JVM的常用的配置参数,其中就涉及了GC相关的知识,趁热打铁,我们今天就学习下GC的算法有哪些,种类又有哪些,让我们进一步的认识GC这个神奇的东西,帮助我们解决了C 一直挺头疼的内存回收问题. 一.GC的概念 首先在介绍GC概念之前,我们先知道下为什么GC,然后我们再讲解GC.众所周知,JAVA 语言,与C语言不同,Java内存(堆内存)的分配与回收由JVM垃圾收集器自动完成,比如 C语言自己定义的变量,不用时需要自己回收这个变量 .JAVA这就是自动完成了,自动检测,无用的垃圾,…
文章目录 GC的概念 GC算法 引用计数法 引用计数法的问题 标记清除 标记压缩 小问题 复制算法 复制算法的最大问题是:空间浪费 整合标记清理思想 -XX:+PrintGCDetails的输出 gc思想以及总结 分代思想 依据对象的存活周期进行分类,短命对象归为新生代,长命对象归为老年代. 根据不同代的特点,选取合适的收集算法 GC算法总结整理 可触及性 概念 可触及的 可复活的 不可触及的 举个栗子 注意点 根 Stop-The-World 举个栗子 GC的概念 Garbage Collec…
出处:博客园左潇龙的技术博客--http://www.cnblogs.com/zuoxiaolong,多谢分享 GC策略解决了哪些问题? 既然是要进行自动GC,那必然会有相应的策略,而这些策略解决了哪些问题呢,粗略的来说,主要有以下几点. 1.哪些对象可以被回收. 2.何时回收这些对象. 3.采用什么样的方式回收. GC策略采用的何种算法 有关上面所提到的三个问题,其实最主要的一个问题就是第一个,也就是哪些对象才是可以回收的,有一种比较简单直观的办法,它的效率较高,被称作引用计数算法,其原理是:…
GC的概念 Garbage Collection 垃圾收集 1960年 List 使用了GC Java中,GC的对象是堆空间和永久区 引用计数法 老牌垃圾回收算法 通过引用计算来回收垃圾 使用者 COM ActionScript3 Python 引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减1.只要对象A的引用计数器的值为0,则对象A就不可能再被使用. 引用计数法的问题 引用和去引用伴随加法和减法,影响性能 很难处理循环引…