Java的内存管理看上去比较深奥且难于理解,大部分开发者会觉得Java内存管理与实际开发距离太远.造成这样一种错误理解原因在于,Java向程序员许下一个美好的承诺:无需关心内存回收,Java提供了优秀的垃圾回收机制来回收已经分配的内存,在这样的承诺下,大部分Java开发者肆无忌惮地挥霍着Java程序的内存分配,从而造成Java程序的运行效率低下.
   java内存管理分为两个方面:内存的分配和内存的回收.这里的内存分配特指创建Java对象时JVM为该对象在堆内存中所分配的内存空间,内存回收指的是当该Java对象失去引用,变成垃圾时,JVM的垃圾回收机制自动清理该对象,并回收该对象所占用的内存.由于JVM内置了垃圾回收机制回收失去引用的java对象所占用的内存,所以很多Java开发者认为Java不存在内存的泄露,资源泄露的问题.实际上这是一种错觉,Java程序依然会有内存的泄露.
     由于JVM的垃圾回收机制由一条后台线程完成,本身也是非常消耗性能的,因此如果肆无忌惮的创建对象,让系统分配内存,那这些分配的内存都将由垃圾回收机制进行回收.这样做有两个坏处:
      1:不断分配内存使得系统中可用内存减少,从而降低程序运行性能;
      2:大量已分配内存的回收使得垃圾回收的负担加重,降低程序的运行性能
.