2019独角兽企业重金招聘Python工程师标准>>>
垃圾回收机制:
1、GC通过确定对象是否被活动对象引用来确定是否收集该对象。
2、触发GC的条件
1)GC在优先级最低的线程中运行,一般在应用程序空闲即没有应用线程在运行时被调用。但下面的条件例外。
2)Java堆内存不足时,GC会被调用。
3、减少GC的措施
1)尽量减少临时对象的使用。
2)对象不用时最好显式置为Null。
3)尽量使用StringBuffer,而不用String来累加字符串。
4) 能用基本类型如Int,long,就不用Integer,Long对象。基本类型变量占用的内存资源比相应对象占用的少得多,如果没有必要,最好使用基本变量。
5)合理的使用静态对象变量。静态变量属于全局变量,不会被GC回收,它们会一直占用内存。
6) 分散对象创建或删除的时间。集中在短时间内大量创建新对象,特别是大对象,会导致突然需要大量内存,JVM在面临这种情况时,只能进行主GC,以回收内存或整合内存碎片,从而增加主GC的频率。集中删除对象,道理也是一样的。它使得突然出现了大量的垃圾对象,空闲空间必然减少,从而大大增加了下一次创建新对象时强制主GC的机会。