您的位置:首页 > 职场人生

面试准备--java垃圾回收机制、内存管理

2015-08-09 16:01 465 查看
一、垃圾回收机制

  

Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。
垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身。
System.gc(),Runtime.getRuntime().gc()  上面的方法调用时用于显式通知JVM可以进行一次垃圾回收,但真正垃圾回收机制具体在什么时间点开始发生动作这同样是不可预料的,这和抢占式的线程在发生作用时的原理一样
判断一块内存空间是否符合垃圾收集器标准的标准只有两个:
(1)给对象赋予了空值null,并且以后再也没有调用过
(2)给对象重新赋予了新值,即重新分配了内存空间
注意:一块内存空间符合垃圾回收标准,并不意味着就一定会被回收

二、内存管理
java的内存管理就是对象的分配和释放问题。
对象的创建:通过new关键字为每个对象申请内存空间(基本类型除外),所有的对象都在堆中分配空间(基本类型在栈中分配)。
对象的释放:有GC决定和执行,释放的根本原则就是该对象不被引用
内存的分配:由java解释器分配
内存的释放:由GC完成
三、内存泄露
在java中,内存泄露就是存在一些被分配的对象,该对象满足两个条件:(1)对象时可达的,即在有向图中,存在通路可以与其相连 (2)对象是无用的,即程序以后不会再用这些对象
内存泄露产生的主要原因:保留下来却永远不再使用的对象引用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 内存管理