„What’s GC?
–GC用于跟踪内存中的对象,并回收那些不再被其他对象引用的对象。
–内存中的对象类型
•活动对象:即当前正在其他对象引用的对象。
•非活动对象:这类对象不再被其他对象所引用,是孤立的对象。这类对象可以被回收,回收的堆空间用于分配给其它新创建的对象。

 

„GC何时会被触发 ?
–系统空闲
•GC线程的优先级低于系统应用线程,当系统中没有应用线程执行时,GC会被触发。
–堆空间内存不足
•当堆空间的内存不足以创建新对象时,GC会被触发。如果第一GC仍不能获得足够的空间,第二次GC将被触发,如果这一次仍无法获取足够的空间, “Out of memory” 将被抛出

 

„影响GC执行时间、频度的因素
–JVM 堆(heap)空间的大小
•堆空间设置偏大,完全GC执行比较耗时,但执行频率会降低。
•堆空间设置恰好符合应用内存需求,完全GC执行很快,但执行会变得更频繁。