理论上Java因为有垃圾回收机制(GC)不会存在内存泄露问题(这也是Java被广泛使用于服务器端编程的一个重要原因);然而在实际开发中,可能会存在无用但可达的对象,这些对象不能被GC回收,因此也会导致内存泄露的发生。例如hibernate的Session(一级缓存)中的对象属于持久态,垃圾回收器是不会回收这些对象的,然而这些对象中可能存在无用的垃圾对象,如果不及时关闭(close)或清空(flush)一级缓存就可能导致内存泄露。
了解更多技术栈知识,请关注“薇云科技”公众号。
Java 中都有哪些引用类型:
强引用:发生 gc 的时候不会被回收。 new
软引用:有用但不是必须的对象,在发生内存溢出之前会被回收。SoftReference
弱引用:有用但不是必须的对象,在下一次GC时会被回收。WeakReference
虚引用(幽灵引用/幻影引用):无法通过虚引用获得对象,用 PhantomReference 实现虚引用,虚引用的用途是在 gc 时返回一个通知。
Java中会存在内存泄漏吗,简述一下
于 2024-08-28 10:46:46 首次发布