java垃圾回收机制
来源:互联网 发布:淘宝巧克力知乎 编辑:程序博客网 时间:2024/06/03 20:27
不同的JVM可能会采用不同的垃圾回收机制来处理。
但总体的来说我们在编程的时候最好要养成良好的变成习惯。
1.全局变量尽量少用,因为它是全局引用的所以不会被回收。
2.尽量少在循环中new对象,因为这样会耗费大量的地址空间。
那么下面我们来谈谈具体的垃圾回收机制是怎样,他会回收哪些他认为的垃圾。
一:空引用:
User user = new User();
user = null;
user相当于这个学生的学号,把学号放空了,你就再也找不到那个对应的学生,所以这种情况需要把该对象变为垃圾,符合垃圾回收条件,但什么回收还是要看系统的操作。
二:对象失去引用:
User user1 = new User();
User user2= new User();
user1 = user2;
这种情况好比user1和user2两个学号本来对应于两个学生,但现在第二个对象一个人拿了两个学号去对应他,导致第一个学生没学号对应。最后也找不到这个没学号的学生了,所以这种情况下的对象也需要回收。什么时候回收也要看系统什么时候执行,即使知道他可以被回收,但也不能强制系统去回收他。
如果如下面这样:
把user2 = null;
这个对象也不符合回收的条件,因为他还有user1指向了他,通俗讲讲就是还能用另一个号码对应找到这学生,所以不能被回收。
三:被调用完的方法里的对象(离开了作用域):
User user1 = new User();
user1 = class.math();
而math()方法中new 了一个对象并返回这个对象;
这时方法里new的对象符合回收条件。因为他return的时候系统会copy一份返回值给调用的引用。
然后那个对象作为局部变量就会被符合回收条件。
总结:回收垃圾的线程是一个低优先级的系统级线程,只有在只有在内存空闲的时候他才会去执行垃圾回收机制,所以并不是所有垃圾都能立马回收,有些垃圾即便程序运行完以后可能还会存在的。
- java垃圾回收机制
- Java垃圾回收机制
- java垃圾回收机制
- 【java】垃圾回收机制
- [Java] 垃圾回收机制
- Java垃圾回收机制
- Java垃圾回收机制
- Java垃圾回收机制
- java垃圾回收机制
- Java垃圾回收机制
- Java垃圾回收机制
- java垃圾回收机制
- java垃圾回收机制
- java 垃圾回收机制
- java垃圾回收机制
- Java垃圾回收机制
- Java垃圾回收机制
- Java垃圾回收机制
- jdbcType与javaType的对应关系
- html5 canvas 图片打马赛克 demo
- poj 2151 概率DP
- Java学习笔记——序列中的自动排序和枚举类型的使用
- OSI的七层网络结构图和TCP/IP的结构图
- java垃圾回收机制
- matlab提取向量中的非零元素
- Unity帧率
- SVN分支和标记用法
- JAVA内部类
- ajax 获取当前 html输入 已经返回后台php处理文件
- 象棋中的将帅互斥问题(二)——单个变量实现多层循环
- 核反应堆
- XML规范中的字符集