关于java垃圾回收器的问题
//: Garbage.java
// Demonstration of the garbage
// collector and finalization
class Chair {
static boolean gcrun = false;
static boolean f = false;
static int created = 0;
static int finalized = 0;
int i;
Chair() {
i = ++created;
if(created == 47)
System.out.println("Created 47");
}
protected void finalize() {
if(!gcrun) {
gcrun = true;
System.out.println(
"Beginning to finalize after " +
created + " Chairs have been created");
}
if(i == 47) {
System.out.println(
"Finalizing Chair #47, " +
"Setting flag to stop Chair creation");
f = true;
}
finalized++;
if(finalized >= created)
System.out.println(
"All " + finalized + " finalized");
}
}
public class Garbage {
public static void main(String[] args) {
if(args.length == 0) {
System.err.println("Usage: \n" +
"java Garbage before\n or:\n" +
"java Garbage after");
return;
}
while(!Chair.f) {
new Chair();
new String("To take up space");
}
System.out.println(
"After all Chairs have been created:\n" +
"total created = " + Chair.created +
", total finalized = " + Chair.finalized);
if(args[0].equals("before")) {
System.out.println("gc():");
System.gc();
System.out.println("runFinalization():");
System.runFinalization();
}
System.out.println("bye!");
if(args[0].equals("after"))
System.runFinalizersOnExit(true);
}
} ///:~
请教java回收器怎么调用到
if(i == 47) {
这句代码,然后结束程序的?
// Demonstration of the garbage
// collector and finalization
class Chair {
static boolean gcrun = false;
static boolean f = false;
static int created = 0;
static int finalized = 0;
int i;
Chair() {
i = ++created;
if(created == 47)
System.out.println("Created 47");
}
protected void finalize() {
if(!gcrun) {
gcrun = true;
System.out.println(
"Beginning to finalize after " +
created + " Chairs have been created");
}
if(i == 47) {
System.out.println(
"Finalizing Chair #47, " +
"Setting flag to stop Chair creation");
f = true;
}
finalized++;
if(finalized >= created)
System.out.println(
"All " + finalized + " finalized");
}
}
public class Garbage {
public static void main(String[] args) {
if(args.length == 0) {
System.err.println("Usage: \n" +
"java Garbage before\n or:\n" +
"java Garbage after");
return;
}
while(!Chair.f) {
new Chair();
new String("To take up space");
}
System.out.println(
"After all Chairs have been created:\n" +
"total created = " + Chair.created +
", total finalized = " + Chair.finalized);
if(args[0].equals("before")) {
System.out.println("gc():");
System.gc();
System.out.println("runFinalization():");
System.runFinalization();
}
System.out.println("bye!");
if(args[0].equals("after"))
System.runFinalizersOnExit(true);
}
} ///:~
请教java回收器怎么调用到
if(i == 47) {
这句代码,然后结束程序的?
...全文
相关推荐
理解垃圾回收器.pdf
理解垃圾回收器.pdf
SpringBoot项目调优及垃圾回收器的比较详解
主要介绍了SpringBoot项目调优及垃圾回收器的比较详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Java垃圾回收器在不同设备环境下的性能分析.pdf
Java垃圾回收器在不同设备环境下的性能分析.pdf
总结Java垃圾回收器的方法和原理.doc
总结Java垃圾回收器的方法和原理.doc
Java垃圾回收机制[项目代码]
Java的垃圾回收机制是JVM的自动内存管理机制,由GC实现,主要负责识别和回收不被使用的对象。垃圾回收机制通过可达性算法判断对象是否被使用,针对堆空间和方法区进行回收。垃圾回收器有多种选择,如Serial Collector,适用于客户端应用。新生代和老年代的回收机制不同,新生代使用复制算法,老年代使用标记-清除或标记-整理算法。垃圾回收机制还涉及四种引用类型:强引用、软引用、弱引用和虚引用。此外,文章还详细介绍了ThreadLocal的作用、实现方式及内存泄漏问题,以及微服务思想、主键索引和唯一索引的区别、Redis的数据一致性问题、缓存击穿、穿透和雪崩的解决方案等。


Java SE
