内存的分配和释放,典型的做法有

1.全人工,也就是调用malloc/free,new/delete这些完全靠程序员,当然这样开发的程序很容易出现bug

2.引用计数,对每个分配的对象增加一个引用计数器,这样带来的问题是内存额外开销,增加减少引用时的计算开销,特别在多线程时的加锁,而且还有循环引用的问题。

3.标记清除,也就是Java GC采用的方式,通过判断有向图中每个节点是否能与根节点相通来对对象进行标记回收。这种方式通过一个独立的GC线程来判断对象在有向图中与根节点的可达状态,然后再进行清除。

Java GC的时机是由系统算法自身决定,或者说不可准确预测,即使是调用了System.gc().被释放的对象会根据大小,生成时间,程序内存使用情况等,触发不同的GC条件,进而用不同的GC方式(minor gc / full gc)释放。

转载于:https://www.cnblogs.com/goooon/p/5658975.html

Java GC 原理相关推荐

  1. Java GC原理简单讲解

    了解GC,首先需要了解jvm,之前写过关于虚拟机的文章<Java虚拟机简单介绍> 其次就是了解设置jvm内存参数和设置方法,这也写过文章<jvm 常用调试工具和设置jvm GC方法和 ...

  2. java gc原理_Java内存管理以及GC工作原理

    1.内存管理简介 内存管理的职责为分配内存,回收内存. 没有自动内存管理的语言/平台容易发生错误. 典型的问题包括悬挂指针问题,一个指针引用了一个已经被回收的内存地址,导致程序的运行完全不可知. 另一 ...

  3. java gc的工作原理、如何优化GC的性能、如何和GC进行有效的交互

    java gc的工作原理.如何优化GC的性能.如何和GC进行有效的交互 一个优秀的Java 程序员必须了解GC 的工作原理.如何优化GC的性能.如何和GC进行有效的交互,因为有一些应用程序对性能要求较 ...

  4. Java 内存模型及GC原理

    一个优秀Java程序员,必须了解Java内存模型.GC工作原理,以及如何优化GC的性能.与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率,才能 ...

  5. 【转】Java 内存模型及GC原理

    一个优秀Java程序员,必须了解Java内存模型.GC工作原理,以及如何优化GC的性能.与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率,才能 ...

  6. java gc日志乱码_gc原理以及gc日志剖析

    gc原理以及gc日志 一.概述 学习Java的我们都知道垃圾收集(gc),大部分人把这项技术当作是java语言的伴生产物.事实上,gc的历史比Java久远,1960年诞生于MIT的Lisp是第一门真正 ...

  7. 不要再问我“Java GC垃圾回收机制”了

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底 ...

  8. jvm系列(十):如何优化Java GC「译」

    本文由CrowHawk翻译,地址:如何优化Java GC「译」,是Java GC调优的经典佳作. Sangmin Lee发表在Cubrid上的"Become a Java GC Expert ...

  9. 成为Java GC专家(5)—Java性能调优原则

    2019独角兽企业重金招聘Python工程师标准>>> 这是"成为Java GC专家"系列的第五篇文章.在第一篇深入浅出Java垃圾回收机制中,我们已经学习了不同 ...

最新文章

  1. asp之GetArray提取链接地址,以$Array$分隔的代码
  2. Nginx-01:内容目录
  3. Django:序列化的几种方法
  4. why SAP Fiori action sheet is created as disabled by default
  5. python 文本处理库_实用又好用,6 款 Python 特殊文本格式处理库推荐
  6. java 代码块同步,Java 同步代码块
  7. how to solve undefined reference in igllib
  8. 应用编辑器保存的htnl代码怎么正常显示在页面上
  9. 计算机组成原理第一章练习题(答案详解)
  10. 以太网驱动详解之 MAC、MII、PHY 详解
  11. 用支付宝如何自己拍证件照?
  12. 网页上生成一个印章。
  13. 解决Flash Player过期的问题——谷歌浏览器Chrome 87.0.4270.0绿色免安装增强版
  14. Dapp开发实战:去中心化NFT交易平台
  15. 电脑上的文件如何备份到服务器,教您电脑文件备份怎么弄
  16. 苦熬一个月,PDF超过6000页
  17. log4j.properties详解
  18. python添加高斯噪声_使用Python-OpenCV向图片添加噪声(高斯噪声、椒盐噪声)
  19. 政府招商引资合同履约怎么做好风险规避?
  20. 如何使用站群程序来批量建网站?

热门文章

  1. 腾讯自动驾驶新动作!与现代合作开发无人车系统
  2. 央视牵手搜狗,AI合成主播为3·15晚会预热
  3. 尴尬!Google搜索现在也会“千人千面”了,退出登录也一样
  4. 真实到可怕!英伟达MIT造出马良的神笔
  5. 马斯克又有新麻烦上身!前员工将他告到美国证监会,曝出一大堆惊天八卦
  6. DeepMind给人工智能搞了一套IQ测试题
  7. 北京自动驾驶路测名单更新:蔚来和Pony.ai也获准上路了
  8. 马化腾很忙:阐释腾讯新定位、与长安合资建车公司,还出了本新书
  9. mysql优化之 EXPLAIN(一)
  10. 写通俗易懂代码-用卫语句替代嵌套条件表达式