Skip to content

Commit 42aff27

Browse files
java虚拟机开始学习
1 parent fe0d484 commit 42aff27

4 files changed

Lines changed: 48 additions & 3 deletions

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.basics.enumTest;
2+
3+
/**
4+
* @ClassName EmuTest
5+
* @Despacito TODO
6+
* @Author chenzhuo
7+
* @Version 1.0
8+
**/
9+
public class EmuTest {
10+
public static void main(String[] args) {
11+
String s = Test.emmm.valaue;
12+
}
13+
enum Test{
14+
emmm("这是一个枚举类");
15+
public String valaue;
16+
Test(String valaue){
17+
this.valaue =valaue;
18+
}
19+
public String getValaue(){
20+
return valaue;
21+
}
22+
}
23+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.sun.jvm.Jvm.PretenureSizeThresholdTest;
2+
3+
/**
4+
* @ClassName PretenureSizeThreshold
5+
* @Despacito TODO
6+
* @Author chenzhuo
7+
* @Version 1.0
8+
* -verbose:gc-Xms20M-Xmx20M-Xmn10M-XX:+PrintGCDetails-XX:SurvivorRatio=8
9+
*
10+
* **-XX:PretenureSizeThreshold=3145728
11+
**/
12+
public class PretenureSizeThreshold {
13+
14+
public static void main(String[] args) {
15+
}
16+
public static void testPretenureSizeThreshold(){
17+
byte[] a ;
18+
a = new byte[4*1024];
19+
}
20+
}

src/main/java/com/sun/jvm/Jvm/finalize/FinalizeEscapeGC.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
* @Despacito TODO
66
* @Author chenzhuo
77
* @Version 1.0
8-
*
9-
*
108
* Finalize导致gc失效
119
* finalize 放在 finalize-Queue中 在一个低级的线程中执行
1210
* finalize() 只能被执行一次
@@ -35,6 +33,8 @@
3533
* finalize-Queue是由一个低级的线程去执行的,jvm不保证这个一定会执行完,
3634
* 因为finalize-Queue在执行的时候可能出现了死循环,会导致整个回收系统的奔溃
3735
*
36+
*
37+
*
3838
**/
3939
public class FinalizeEscapeGC {
4040
public static FinalizeEscapeGC SAVE_HOOK = null;

src/main/java/com/sun/jvm/Jvm/gcRoots/GCRootTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ public static void main(String[] args) {
6868
Node node = new Node(i, next);
6969
next = node;
7070
}
71+
next = null;
72+
triggerGC();
7173
/**
7274
* gc日志
7375
* [GC (Allocation Failure) [ParNew: 1064551K->847K(1198080K), 0.0038396 secs] 1064551K->847K(3962880K), 0.0039093 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
@@ -83,7 +85,7 @@ public static void main(String[] args) {
8385
//没有设置为null的时候,回收的时候会遍历next的所以节点,所以会很耗时间
8486
//但是把next的set为null的时候 就变为不可达状态
8587
// next = null; help gc
86-
triggerGC();
88+
8789
}
8890

8991
private static void triggerGC() {

0 commit comments

Comments
 (0)