在C++中,内存泄漏是指应用程序为某些对象被分配了内存空间,然后却因为某些原因不可达,以至于被这些对象使用的内存无法被释放并返还给操作系统,这些内存将永远收不回来。
这种内存泄露问题在Java程序中并不存在。在Java中,对象使用的内存都由垃圾回收器负责回收的,而Java虚拟机并不存在任何被证实的内存泄漏问题。实践证明,垃圾收集器一般能够精确地判断哪些对象可被收集,回收它们占用的内存空间并返还给Java 虚拟机。
在Java中,内存泄漏是指在程序中存在一些实际上并不需要的对象引用。垃圾收集器并不会把用户认为已经用完的对象当作垃圾进行回收,因为对于垃圾收集器来说,应用程序仍然可以通过这个集合在任何时候访问这些对象。于是就会产生了内存泄露。
实际的例子及解释,在张老师的基础加强的视频中有所讲解,可以参考张孝祥基础加强视频:26_ArrayList_HashSet的比较及Hashcode分析中第18分钟左右提到过的 |