面试准备--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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统