Thread sleep 与GC的关系
当-Xmx20m -Xmn10m时为什么加了Thread.sleep(10)就能正常回收了呢,虽然时回收了但main在引用着list,不是应该不让它回收才是吗?
package _2_4;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
/**
* Java 堆溢出
* Java堆内存的OOM异常
* @author Administrator
* -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError
*/
public class HeapOOM {
static class OOMObject{
}
public static void main(String args[]){
try{
Thread.sleep(10000);
HeapOOM heapOOM = new HeapOOM();
heapOOM.test();
}catch(Exception e){
e.printStackTrace();
}
}
public void test(){
try{
List<OOMObject> list = new ArrayList<>();
while(true){
// Thread.sleep(10);
list.add(new OOMObject());
}
}catch(Exception e){
e.printStackTrace();
}
}
}
...全文
相关推荐
JAVA程序员面试题(含有答案)经典版
11. sleep() 和 wait()有什么区别:sleep 是 Thread 类中定义的方法,表示线程的休眠,会自动唤醒。
java编程常见面试题目.pdf
第十二,sleep() 和 wait() 有什么区别? sleep()是Thread类的方法,让当前线程暂停指定时间,不会释放锁。
⑵java面试笔试题大汇总很全面.doc
**sleep() 和 wait()的区别**: - sleep()是Thread类的方法,使当前线程暂停指定时间,不会释放锁。
java基础面试考察点.pdf
实现一个线程池;IO 密集型和 CPU 密集型与线程池大小的关系。JVM 相关知识点1. Java 的类加载器体系结构和双亲委托机制,应用场景举例。2.
JAVA经典试题合集
**sleep() 和 wait()**: - `sleep()` 是Thread类的方法,使当前线程暂停执行指定的时间,释放CPU资源,但不会释放锁。


Java SE
