Java垃圾回收机制

Java垃圾回收机制

    今天,学习Java垃圾回收机制,因为发现内容太多,所以分为两天完成。

  • 是什么?

       java虚拟机(JVM)回收不在被使用的内存,称为java垃圾回收(Garbage Collection,也称为GC).通常JVM会在系统中创建一个超级线程,用来对内存进行检索、控制,并在CUP空闲时以及内存快到上线时,进行垃圾回收操作。程序员无法对垃圾回收的顺序、时间进行控制。建议JVM回收内存垃圾:1. 通过调用System.gc();       2. 将不再使用的对象设置为null; 但是什么时候回收还要取决于JVM。

  • 为什么Java会这样处理内存垃圾呢?

      回顾C/C++,对已分配的内存都是通过程序显示的回收;显示回收存在存在两个缺点:

          1. 漏删:忘记对已分配的内存进行回收(释放), 可能会造成程序性能下降以及内存泄露 问题。

          2. 错删:错误的将程序核心内存进行回收,可能会造成系统崩溃。

     java则不同,它的内存都是通过JVM进行自动回收。

      注: 内存泄露:从字面直观就不难理解,内存少于当初的内存总容量,因为内存泄露了。其实大概意思也差不多,因为程序员不可能知道所有的内存都什么时候该被回收,从而造成程序性能下降以及有可能造成系统瘫痪,这种现象成为内存泄露。

 

以上都是个人观点,希望对大家有帮助,如果存在错误、不足请大虾们多多指点。

你可能感兴趣的:(jvm)