Java面试题:哪些对象可以作为GC Roots?
Java是托管运行对语言,内存对分配和回收是自动进行对。 那么JVM如何确定哪些内存可以被回收呢?这里面是有特定对算法的。1、GC自动垃圾收集?Java虚拟机(JVM)垃圾回收GC任务自动确定Java应用程序不再使用的内存并将该内存回收以用于其他用途。由于内存是在JVM中自动回收的,因此Java开发人员不必考虑复杂的内存释放工作,基本不需要显式释放未使用的内存对象。 类似与自己买菜做饭洗碗和专有保姆买菜做饭洗碗的区别。工作还是要有人做,只是把复杂琐碎的GC工作交给其他线程来做。好处就是:省事。解放码农的双手,去干其他的开发工作。1、GC垃圾回收算法GC垃圾回收的规则和方法很多,Java经历了20多年的发展,还在不断进化。GC算法也多种多样。这里比较成熟的CMS。还有比较新的算法G1。无论何种算法,都有一个最重要的问题:如何认定某个对象可以被GC垃圾回收?GC回收垃圾操作基于以下假设前提:Java中大多数对象都是短命的,并且可以在创建后不久将其回收。由于未引用的对象会自动从堆内存中删除,因此GC使Java的内存效率更高。GC自动垃圾回收是查看堆内存,识别正在使用的对象和未使用的对象以及删...
