C和C++程序员在内存管理的时候,需要自己向系统内存自己申请和释放,在JAVA里面,这个工作完全是由虚拟机完成的,虽然JAVA语言已经足够优秀,性能相当OK,但是我们在实际开发过程中,程序还可以进一步的优化。
JAVA垃圾回收:
一个对象在创建后被放置在了JVM的堆内存中,当永远不再引用这个对象时,JVM会自动帮你回收,被创建的对象没法再生,程序语句是没办法释放他们的
所以,JAVA的垃圾回收,当你在coding的时候调用gc()方法,是不管用的,回收不回收,是JVM说了算。
JVM的垃圾回收主要是根据根集合去索引对象,当图中有X标记的时候就是不可到达对象,就会被JVM认定为垃圾对象,会被回收。
JAVA的JVM主要回收的是堆内存的,而堆内存主要用来存储程序运行时创建或实例化的对象与变量