相同点:

都采用了分代的机制。

都支持并发GC。

都没有采用引用计数方式,而是采用了追踪技术。

.NET中,可以通过代码GC.Collect() 强制要求CLR进行垃圾回收(由于垃圾回收是异步的,CLR有一个专用的线程负责垃圾回收,因此,即使调用GC.Collect,也并不是实时的调用了Finalize,因此要保证确实调用了析构方法,可以使用语句GC.WaitForPendingFinalizers()来确保析构方法真的被运行了,参考http://cnn237111.blog.51cto.com/2359144/1343004)

Java中也可以通过System.gc() 强制要求进行垃圾回收。(事实上也仅仅是建议JVM执行垃圾回收,JVM并不一定立即做回收行为。)

不同点:

CLR预留了一块大空间,称作large object heap (LOH),目的是当有大对象(超过85000字节的)需要分配空间时,就可以放在这里。

这块地方和分代机制的不同之处在于,这个地方只有当发生full GC的时候,才会回收,而且这块地方不会被压缩。

Java中可以通过配置参数,使得大对象(大于设定的阈值)直接进入老年代(避免在年轻代上做大量的复制操作)。

.NET回收的内存,直接给返还给操作系统。

JVM在的垃圾回收机制,提供了大量的可配置参数。

而CLR的垃圾回收机制几乎没什么可以配置的(仅有的配置似乎就是工作站模式(Workstation)和服务器模式(Server))。

都支持并发GC。JAVA是在老年代上支持并发GC,采用的CMS收集器。

.NET的并发GC只在第2代上,并且在工作站模式下才会有。

Java分成年轻代,老年代,永久代。

.NET分第0代,第1代,第2代。

.NET中采用了标记,压缩的方式。

JAVA由于收集器很多,因此不限于一种算法。年轻代老年代方式

Serial收集器复制算法单线程,stop the world

SerialOld收集器标记整理算法单线程,stop the world

ParNew收集器复制算法标记整理算法多线程,stop the world

Parallel Scavenge收集器复制算法多线程,stop the world

CMS收集器标记清除单线程

G1收集器复制标记整理

Java垃圾回收的几篇文章

.NET垃圾回收的几篇文章

java和net共同点,Java和.NET中的垃圾回收机制比较相关推荐

  1. Java Jvm 中的垃圾回收机制中的思想与算法 《对Java的分析总结》-四

    Java中的垃圾回收机制中的思想与算法 <对Java的分析总结>-四 垃圾回收机制 中的思想与算法 引用计算法 给对象中添加一个引用计数器,每当一个地方引用它的时候就将计数器加1,当引用失 ...

  2. 一篇文章搞定java中的垃圾回收机制面试题

    一篇文章搞定java中的垃圾回收机制面试题 任何语言在运行过程中都会创建对象,也就意味着需要在内存中为这些对象在内存中分配空间,在这些对象失去使用的意义的时候,需要释放掉这些内容,保证内存能够提供给新 ...

  3. 简述python垃圾回收机制_python中的垃圾回收机制简述

    2020年12月5日21:47:35 王凯玉 python中的垃圾回收机制 引用计数 # 引用计数 引用计数是编程语言中的一中内存管理技术,可以将资源的被引用次数保存起来. 当引用计数为0时,资源将被 ...

  4. 浅谈V8引擎中的垃圾回收机制

    浅谈V8引擎中的垃圾回收机制 这篇文章的所有内容均来自 朴灵的<深入浅出Node.js>及A tour of V8:Garbage Collection,后者还有中文翻译版V8 之旅: 垃 ...

  5. js中的垃圾回收机制

    js中的垃圾回收机制 1.什么是堆.栈 一种数据结构,栈有先进后出的特性, 堆是用来存放复杂数据类型的地址(栈用来存放它的引用) 2.执行上下文与作用域链 执行上下文:全局执行上下文.函数执行上下文. ...

  6. JAVA中的垃圾回收机制以及其在android开发中的作用

    http://blog.csdn.net/xieqibao/article/details/6707519 这篇文章概述了JAVA中运行时数据的结构,以及垃圾回收机制的作用.在后半部分,描述了如何检测 ...

  7. [转载] Python和java中的垃圾回收机制

    参考链接: Python中的垃圾回收 Python的垃圾回收机制 Python的垃圾回收机制有两种(也可以说一种:叫引用计数): 一是引用计数, 二是隔代回收. 引用计数 引用计数原理: 当数据的引用 ...

  8. Java面向对象(七)包、内部类、垃圾回收机制

    一.包 package 包名:  ---- 声明包    注意: 一个java文件中只能有一句package语句 ,  并且必须放在java文件首行 . import 包名: --- 导包 impor ...

  9. python有向图_Python 中的垃圾回收机制

    一.概述 python采用的是引用计数机制为主,标记-清除和分代收集(隔代回收)两种机制为辅的策略. 现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的 ...

最新文章

  1. No view found for id 0x7f0900d8
  2. python学了有什么用处-python用处广吗
  3. .Net有关问题。在GridView中添加了一个HyperLinkField,用来显示显示详细信息,请教跳转后的详细信息页面该怎样写代码
  4. python-mysql
  5. 什么是回调地狱以及promise的链式调用和aysnc/await
  6. Python问题记录
  7. 分表扩展全局序列实际操作_高可用_单表存储千万级_海量存储_分表扩展---MyCat分布式数据库集群架构工作笔记0026
  8. PIE SDK 坐标系创建、定义、对比
  9. [LeetCode][easy]Reformat The String
  10. AI人工智能开发的5种最佳人工智能编程语言
  11. 固高运动控制卡原点回零函数
  12. 2021.7.28魔鬼训练报告
  13. gmsk的matlab仿真,MSKGMSK 导师传给我的关于MSK和GMSK的一些相关MATLAB仿真源码 - 下载 - 搜珍网...
  14. 【Arduino】一天入门Arduino语言 教程
  15. 安卓Alarm闹钟唤醒耗电问题的排查
  16. thinkphp ajax 跨域请求 Access-Control-Allow-Origin 完美解决
  17. html5 树开花效果,几种不用经常照顾的灌木花卉,开成花树后太美了
  18. 2010互联网第一件大事件——谷歌退出中国内地
  19. 软件使用vmware虚拟机的安装步骤详细
  20. 【Pytorch Lighting】第 7 章:半监督学习

热门文章

  1. 通过自动缩放Kinesis流实时传输数据
  2. LiveVideoStack线上交流分享 ( 四 ) —— 面向QoE的感知视频编码
  3. LiveVideoStackCon讲师热身分享 ( 三 ) —— Facebook的工具文化与多媒体QoE
  4. 美国36%流量背后 Netflix CDN分发算法优化
  5. 有意思的 Node.js 内存泄漏问题
  6. ffplay播放没有声音SDL_OpenAudio (2 channels, 44100 Hz): WASAPI can't initialize audio client
  7. go uintptr unsafe Pointer offset() 的使用
  8. 对于多表查询和转账的事务提交
  9. leetcode 111. 二叉树的最小深度
  10. JVM从入门到精通(八):JVM调优实战