为什么要有GC 首先JAVA和ASPNET都有GC 垃圾回收 (garbage collection, GC) 一个跟踪过程,它传递性地跟踪指向当前使用的对象的所有指针,以便找到可以引用的所有对象,然后重新使用在此跟踪过程中未找到的任何堆内存。公共语言运行库垃圾回收器还压缩使用中的内存,以缩小堆所需要的工作空间 因为你没有足够多内存,并且,你挺懒,不去自己清理内存,所以就有了 GC 什么是GC GC的全称是garbage collection,中文名称垃圾回收,是net中对内存管理的一种功能。垃圾回收器跟踪并回收托管内存中分配的对象,定期执行垃圾回收以回收分配给没有有效引用的对象的内存。当使用可用内存不能满足内存请求时,GC会自动进行。 在进行垃圾回收时,垃圾回收器回首先搜索内存中的托管对象,然后从托管代码中搜索被引用的对象并标记为有效,接着释放没有被标记为有效的对象并收回内存,最后整理内存将有效对象挪动到一起。这就是GC的四个步骤。 由上可见,GC是很影响性能的,所以一般说来这种事情况还是尽量少发生为好。 为了减少一些性能影响,net的GC支持对象老化,或者说分代的概念,代是对象在内存中相对存现时期的度量单位,对象的代数或存现时期说明对象所属的代。目前net的垃圾回收器支持三代。每进行一次GC,没有被回收的对象就自动提升一代。较近创建的对象属于较新的代,比在应用程序生命周期中较早创建的对象的代数低。最近代中的对象位于零代中。
gc属于网络用语,是高潮的意思,是指涨潮时达到的最高水位。常用引申为人的生理愉悦的顶点,也常用来形容小说、戏剧、**情节中矛盾发展的顶点,另有一些同名的名人和地名。
"网络用语",即多在网络上流行的非正式语言。多为谐音、错别字改成,也有象形字词,以及在论坛上引起流行的经典语录。这些语言先于网上流行起来,然后融入到我们的日常生活中。多为搞笑、讽刺、赞美、以及恶搞之词或句子。
general consel(全职、首席法律顾问)
事务咨询(就企业谈判提供法律意见、起草谈判术、健全企业管理制度等)
针对企业经营特点,为企业制定适合其发展的法律策略
解决纠纷
GC有多层含义,使用环境比较多,基本是拼音的首字母所写,有:观察、滚操、高潮、公厕。
一是计算机术语,指GabageCollection;二是网络用语,踩空间,灌水的时候广东白话里“支持”的意思;三是网络域中的GC,就是“全局目录”GlobalCatalog;四是科研用语,即GasChromatography(气相色谱法);五是ML特定用语,即“高----潮”。
常用的GC算法:
1)标记非活动对象
--何为非活动对象,通俗的讲,就是无引用的对象。
追踪root对象算法: 深度追踪root对象,将heap中所有被引用到的root做标志,所有未被标志的对象视为非活动对象,所占用的空间视为非活动内存。
2)清理非活动对象
Copy算法:
方法:将内存分为两个区域(from space和to space)。所有的对象分配内存都分配到from space。在清理非活动对象阶段,把所有标志为活动的对象,copy到to space,之后清楚from space空间。然后互换from sapce和to space的身份。既原先的from space变成to sapce,原先的to space变成from space。每次清理,重复上述过程。
优点:copy算法不理会非活动对象,copy数量仅仅取决为活动对象的数量。并且在copy的同时,整理了heap空间,即,to space的空间使用始终是连续的,内存使用效率得到提高。
缺点:划分from space和to space,内存的使用率是1/2。
Compaction算法:
方法:在清理非活动对象阶段,删除非活动对象占用内存,并且把活动对象向heap的底部移动,直到所有的活动对象被移到heap的一侧。
优点:无须划分from sapce和to space,提高内存的使用率。并且compaction后的内存空间也是连续分配的。
缺点:该算法相对比较复杂。
sun jdk gc介绍:
在减少gc之前,先来看看来自IBM的一组统计数据:
98%的java对象,在创建之后不久就变成了非活动对象;只有2%的对象,会在长时间一直处于活动状态。
如果能对这两种对象区分对象,那么会提交GC的效率。在sun jdk gc中(具体的说,是在jdk14之后的版本),提出了不同生命周期的GC策略。
young generation:
生命周期很短的对象,归为young generation。由于生命周期很短,这部分对象在gc的时候,很大部分的对象已经成为非活动对象。因此针对young generation的对象,采用copy算法,只需要将少量的存活下来的对象copy到to space。存活的对象数量越少,那么copy算法的效率越高。
young generation的gc称为minor gc。经过数次minor gc,依旧存活的对象,将被移出young generation,移到tenured generation(下面将会介绍)
young generation分为:
eden:每当对象创建的时候,总是被分配在这个区域
survivor1:copy算法中的from space
survivor2:copy算法中的to sapce (备注:其中survivor1和survivor2的身份在每次minor gc后被互换)
minor gc的时候,会把eden+survivor1(2)的对象copy到survivor2(1)去。
tenured generation:
生命周期较常的对象,归入到tenured generation。一般是经过多次minor gc,还 依旧存活的对象,将移入到tenured generation。(当然,在minor gc中如果存活的对象的超过survivor的容量,放不下的对象会直接移入到tenured generation)
tenured generation的gc称为major gc,就是通常说的full gc。
采用compactiion算法。由于tenured generaion区域比较大,而且通常对象生命周期都比较常,compaction需要一定时间。所以这部分的gc时间比较长。
minor gc可能引发full gc。当eden+from space的空间大于tenured generation区的剩余空间时,会引发full gc。这是悲观算法,要确保eden+from space的对象如果都存活,必须有足够的tenured generation空间存放这些对象。
Permanet Generation:
该区域比较稳定,主要用于存放classloader信息,比如类信息和method信息。
对于spring hibernate这些需要动态类型支持的框架,这个区域需要足够的空间。
这部分内容相对比较理论,可以结合jstat,jmap等命令(当然也可以使用jconsole,jprofile,gciewer等工具),观察jdk gc的情
(
GC为意大利皮鞋知名牌品标志。
Gino Castel(吉诺·卡斯特),简称“GC”,是源自意大利的时尚休闲皮鞋品牌。吉诺·卡斯特一向以做工精致著称,运用意大利纯手工技艺,专门研发和制造全真皮时尚休闲鞋和商务鞋,品牌以独特的设计理念,一直为西欧和迪拜的政企单位、时尚达人和商务精英提供定制服务。
扩展资料:
注意事项:
1、鞋底
皮鞋底有皮质和胶质两大类。质量好的皮质鞋底,表面光亮平滑,颜色均匀一致,没有油斑、污点和伤痕,厚薄均匀;用手指弹,声响清脆,手模感觉很坚实。这种鞋底柔韧丰满,抗张强度大,耐磨性强。质量好的胶质鞋底,表面光滑一致,花纹整齐,每个花纹边角应鲜明完整。
从侧面看,切面均匀细致无杂质,无大小颗粒组织,无厚薄不均现象;用手摸,应有较好的韧性和弹性感觉。若是胶粘皮鞋,要检查底边帮底粘合是否严密、平整,不能有空隙、遗胶现象。轻巧的合成树脂底个人感觉最好,又轻又耐磨。
2、大小
挑选皮鞋以舒适为原则。一般讲,宽窄以脚面受力时能够完全展开为好;长短以脚尖不夹不顶,行走时脚不在鞋内滑动为好。另外,购买皮鞋的时间也有讲究。人在下午因脚部略有肿胀,此时所购皮鞋大小合适;若在上午试鞋,则应留出空余量,不致穿得时间长了挤脚。
参考资料来源:百度百科——GC
gc是指垃圾回收机制,当一个对象不能再被后续程序所引用到时,这个对象所占用的内存空间就没有存在的意义了,java虚拟机会不定时的去检测内存中这样的对象,然后回收这块内存空间。
GC的基本原理:
对于程序员来说,用new关键字即在堆中分配了内存,我们称之为“可达”。对于GC来说,只要所有被引用的对象为null时,我们称之为“不可达”,就将进行内存的回收。
当一个对象被创建时,GC开始监控这个对象的大小、内存地址及使用情况。GC采用有向图的方式记录和管理堆(heap)中的所有对象,通过这种方式可以明确哪些对象是可达的,哪些不是。当确定为不可达时,则对其进行回收。
保证GC在不同平台的实现问题,java规范对其很多行为没有进行严格的规定。对于采用什么算法,什么时候进行回收等。
以上就是关于什么是GC,GC是什么意思为什么要有GC全部的内容,包括:什么是GC,GC是什么意思为什么要有GC、gc是什么梗、法律顾问GC的全称是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!