垃圾回收机制

  • 一、垃圾回收发生在哪里
  • 二、垃圾回收常用算法
    • 2.1、引用计数法
    • 2.2、可达性算法

一、垃圾回收发生在哪里


主要发生在堆中。
Java堆:对象分配内存的区域,这里是垃圾回收的主战场。
方法区:存放类信息、常量、静态变量、编译器编译后的代码等数据,另外还有一个常量池,垃圾回收器也会在这个区域工作。

二、垃圾回收常用算法

2.1、引用计数法

含义:每个对象有一个引用计数器,当对象被饮用一次则计数器加1,当对象引用失效一次则计数器减1,对于计数器为0的对象意味着是垃圾对象,可以被GC回收。


2.2、可达性算法

从GC Roots作为起点开始搜索,那么整个连通图中的对象便都是活对象,对于GC Roots无法到达的对象变成了垃圾回收的对象,随时可被GC回收。
每次对对象赋值时均需要维护引用计数器,且计数器本身也有一定的消耗。较难处理循环引用。

可以作为GC Roots的对象:

  • 虚拟机栈的栈桢的局部变量表所引用的对象;
  • 本地方法栈的JNI所引用的对象;
  • 方法区的静态变量和常量所引用的对象。
    关于可达性的对象,便是能与GC Roots构成连通图的对象。


JAVA垃圾回收机制勘误相关推荐

  1. java垃圾回收机制_笔记 | Java垃圾回收机制

    本文经授权转载自程序员杂货铺(ID:speakFramework) 垃圾回收 最近上海的小伙伴是不是要被强垃圾分类搞疯了???哈哈哈哈 上海是个走在前列的城市啊,不光骑自行车闯红灯要被罚钱,垃圾不分类 ...

  2. Java垃圾回收机制(Garbage Collection)

    引用博客地址:http://www.cnblogs.com/ywl925/p/3925637.html 以下两篇博客综合描述Java垃圾回收机制 第一篇:说的比较多,但是不详细 http://www. ...

  3. java垃圾回收机制_JVM的垃圾回收机制——垃圾回收算法

    一.Java垃圾回收机制 在java中,程序员是不需要显示的去释放一个对象的内存的,而是由虚拟机自行执行.在JVM中,有一个垃圾回收线程,它是低优先级的,在正常情况下是不会执行的,只有在虚拟机空闲或者 ...

  4. 36.JVM内存分哪几个区,每个区的作用是什么、如和判断一个对象是否存活、java垃圾回收机制、垃圾收集的方法有哪些、java类加载过程、类加载机制、双亲委派、Minor GC和Major GC

    36.JVM内存分哪几个区,每个区的作用是什么? 37.如和判断一个对象是否存活?(或者GC对象的判定方法) 38.简述java垃圾回收机制? 39.java中垃圾收集的方法有哪些? 40.java类 ...

  5. 深入理解 Java 垃圾回收机制

    转载自 http://www.cnblogs.com/andy-zcx/p/5522836.html 深入理解 Java 垃圾回收机制 一:垃圾回收机制的意义 java  语言中一个显著的特点就是引入 ...

  6. java垃圾回收机制的理解

    Java垃圾回收机制算法 标记----清除算法 复制算法 标记----整理算法 分代收集算法 为什么要进行垃圾回收 因为当一个对象的引用不可达,或者一个对象没有任何引用指向它,那么它就没有必要在内存中 ...

  7. 【Java】Java垃圾回收机制

    Java垃圾回收机制 说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来.在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给 ...

  8. Java深度历险(四)——Java垃圾回收机制与引用类型

    Java语言的一个重要特性是引入了自动的内存管理机制,使得开发人员不用自己来管理应用中的内存.C/C++开发人员需要通过malloc/free 和new/delete等函数来显式的分配和释放内存.这对 ...

  9. axis2 webService开发 附深入理解 Java 垃圾回收机制

    相关文章: axis web服务(axis2安装和eclipse.tomcat结合开发) axis2 webService开发 axis2 webService开发(打包aar文件) 使用Axis2开 ...

最新文章

  1. 读书笔记 - 企业精简架构
  2. ofstream写文件
  3. hibernate annotation注解方式来处理映射关系
  4. python PEP8规范
  5. “曲屏版iPhone 13 Pro” 2799元!荣耀60 SE新版上架:12GB+256GB超大存储
  6. 第十:Pytest中的yield操作
  7. 我们来判断一个php函数是否被定义
  8. 此刻心情--我为什么不找女朋友
  9. excel熵值法计算权重_SPSSAU一众新功能上线:高级公式、综合得分一键计算
  10. php定义一个矩形类rectangle,c#定义一个类圆Circle或者定义一个矩形类Rectangle,分别计算它们的周长和面积....
  11. 机会总是留给有准备的人 —— 从裁缝到码农
  12. Good Bye 2020 E
  13. 人类高质量程序员电脑配置(持续更新)
  14. Inno一个程序打包安装工具
  15. Android设备虚拟摄像头技术实现
  16. [Android]Tablayout:修改指示器indicator的宽度
  17. kali虚拟机连接网络设置/解决ping网站时域名解析错误/解决子网ip和子网掩码不一致
  18. paper fast review :Deep Residual Shrinkage....
  19. 最新迪恩电影/美剧DiscuzV3.2商业版模板源码
  20. “文件或目录损坏且无法读取”的简单修复

热门文章

  1. java 惊群效应,eureka的惊群效应
  2. 软件工程导论 03章需求分析
  3. 成功将本地文件添加到github仓库
  4. DB2数据库对现有表格字段修改
  5. 深度学习之卷积、全连接、反卷积等
  6. 在Windows端安装kafka提示错误:找不到或无法加载主类的解决方案
  7. 【B/S】HTML总结
  8. ARP协议以及攻击欺骗和防御
  9. Java的四种包访问权限
  10. MySQL报错:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException