my git : https://github.com/hejiawang
Java虚拟机学习记录整理。
一、在Java垃圾回收器清理垃圾对象之前,首先要做的事就是判断哪些对象没人用了、死了、可以回收了;哪些对象还有人用,还活着,不能进行回收。那么垃圾回收器是怎么判断Java对象是生是死呢?
二、引用计数算法
引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它,计数器值就加一,当引用失效,也就是用完了的时候,计数器值就减一,任何时刻计数器值为0的对象,就是没人用的对象,说明该对象可以去死了,那么垃圾回收器将该垃圾对象回收。
引用计数算法的实现简单,判断效率很高,但是在Java虚拟机中,使用引用计数算法不能达到理想效果,因为引用计数算法很难解决对象之间相互循环引用的问题。比如如下代码:
A a = new A(); B b = new B(); a.aB = b;//A类中有B属性 b.bA = a;//B类中有A属性
除了上面的引用之外,对象a和b再无任何引用。
实际上,这两个对象已经没用了,应该进行垃圾收集了,但是他们因为互相引用着对方,导致引用计数的值始终不能为0,于是引用计数算法无法通知垃圾收集器回收它们。
可见这种引用计数算法在Java虚拟机中管理内存是不可用的。但是用处还是很大的,在其他虚拟机中有用引用计数算法管理内存的。
三、可达性分析算法
可达性分析算法的基本思路:通过一系列的称为“GC Roots”的对象作为起点,从这些起点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时,则正面此对象是不可用的。
就像下图中,对象Object5,Object6,Object7,虽然相互之间相互关联,但是它们到GC Roots已经是不可达了,其实已经没人用了,可以回收了。
在Java语言中,可作为GC Roots对象的包括以下几种:
1、虚拟机栈(栈帧中的本地变量的表)中引用的对象;
2、方法区中类静态属性引用的对象;
3、方法区中常量引用的对象;
4、本地方法栈中JNI引用的对象
相关推荐
java 判断对象是否为空.如String,Character,Object[]
Java SE程序 集合中判断对象相等Java SE程序 集合中判断对象相等Java SE程序 集合中判断对象相等Java SE程序 集合中判断对象相等Java SE程序 集合中判断对象相等Java SE程序 集合中判断对象相等Java SE程序 集合中...
Java对象的比较方式.doc
主要用于同一Java对象比较新旧变化数据,判断对象属性内容是否存在变更,并输出详细变更信息。
工具类 基础的类型 对象 数据的工具,进行判断或者进行操作
一个java 面向对象字符串写法的判断回文数 假如输入非数字 会提示输入数字 利用循环写的 大家多多支持
《java程序设计》课程的题库资料,由贺州学院整理,可供学生期末课程复习使用,也可以供相关...10. Java是面向对象的语言,对象是客观事物,对象与之是一一对应,它是很具体的概念。( ) 答案:× [考点范围] JAVA简介
j a v a 判 断 编 码 方 式,
类似jaxb 技术 java对象集合与Excel列表或者是CSV文件之间的互相转换
java判断对象是否为空
详细总结了java中创建对象的不同方式和String创建对象的不同方式
Java 面向对象 练习题与答案
该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用...
java判断题
该例子是将xml文件映射为java对象的例子。 commons-betwixt-0.8.jar
java 判断点在多边形内 java 判断点在多边形内 java 判断点在多边形内 java 判断点在多边形内 java 判断点在多边形内 Java GIS 多边形 Java点多边形
主要介绍了Java中判断对象是否为空的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
后续分卷改名为《Java面向对象编程相关资源》大家下载后要记得把压缩包改回原来的名字以便解压(如:Java面向对象编程相关资源.part11.rar--->Java面向对象编程书+实例源代码+课后题答案.part11.rar)。
java判断字符串是否是json或json数组; 简单小方法,很实用;简单实用的方法;亲测可用;嗯嗯嗯呃呃呃呃呃呃呃
主要介绍了Java判断对象是否为空(包括null ,"")的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧