java是一门垃圾回收语言,也就是说程序员不需要手动管理内存分配和回收。我们只需要撸码就可以,然后我们java中的java虚拟机(JVM)按需分配内存,再不需要的时候会自动清理这部分的内存。
JAVA虚拟机会把堆分成两组,用代来表示:
新生代和老生代
新生代:--新实例化的对象分配的空间。新生代空间通常都是比较小的,一般是100-500MB。新生代包含两个幸存空间;
老生代:--较老的对象存储空间,这些对象预计将长期保留并持续很长的一段时间,老生代通长比新生代要大。
但是两个也有共同点:长期不使用的对象就会被当成垃圾回收(GC),那些依然存活的对象就会被转移到一个幸存区。
新生代和老生代的垃圾回收都有一个阶段会“停止时间”。在这段时间,JVM停止程序的运行,以便跟踪对象图,收集死亡对象。在这段时间里,一切都不会发生,请求不被服务,但是ping不会被影响。