Java 中会存在内存泄漏吗,请简单描述?java内存回收机制是java的一个特色,虽然学习理解难得不是很大,但是很多新手同学不是很重视,并不能很大的表达描述。Java 内存机制相关知识点应用也是最经常遇到的一个基础java面试题,不管原来知道不知道,现在告诉你,赶紧记牢面试无忧!
Java 中会存在内存泄漏吗?
理论上Java因为有垃圾回收机制(GC)不会存在
Java内存泄漏问题(这也是Java被广泛使用于服务器端编程的一个重要原因);然而在实际开发中,可能会存在无用但可达的对象,这些对象不能被GC回收,因此也会导致内存泄露的发生。例如Hibernate的Session(一级缓存)中的对象属于持久态,垃圾回收器是不会回收这些对象的,然而这些对象中可能存在无用的垃圾对象,如果不及时关闭(close)或清空(flush)一级缓存就可能导致内存泄露。
本题涉及java知识点分析
JVM垃圾回收机制
垃圾回收(Garbage Collection)是
Java虚拟机(JVM)垃圾回收器提供的一种用于在空闲时间不定时回收无任何对象引用的对象占据的内存空间的一种机制。
什么时候进行垃圾回收
①会在cpu空闲的时候自动进行回收
②在堆内存存储满了之后
③主动调用System.gc()后尝试进行回收
补充:System.gc()用于调用垃圾收集器,在调用时,垃圾收集器将运行以回收未使用的内存空间。它将尝试释放被丢弃对象占用的内存。 然而System.gc()调用附带一个免责声明,无法保证对垃圾收集器的调用。 所以System.gc()并不能说是完美主动进了垃圾回收。
以上是思博网络为广大奔走在面试以及学习阶段的java同行整理的关于Java 内存相关可能遇到的面试问题以及重要知识点,可能存在不足或者需要补充,您有什么观点和认识,欢迎指正补充,大家一起快乐学Java,高薪在就业!
如果遇到什么疑问或者困惑,可以联系我们,乐于与您分享讨论!