Skip to content

Commit ceee054

Browse files
committed
类加载器、JVM部分内存管理
1 parent 2b22ee3 commit ceee054

7 files changed

Lines changed: 141 additions & 2 deletions

File tree

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package JVM;
2+
3+
/**
4+
* java栈 -Xss 设置最大栈值
5+
*
6+
* @author :chenxin
7+
* @date :Created in 2020/3/26 12:51
8+
* @description:java栈 -Xss 设置最大栈值
9+
* @modified By:
10+
* @version: $
11+
*/
12+
public class JavaStackTest {
13+
int count = 0;
14+
15+
public static void main(String[] args) {
16+
new JavaStackTest().f();
17+
}
18+
19+
void f() {
20+
count++;
21+
System.out.println(count);
22+
f();
23+
}
24+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package JVM;
2+
3+
/**
4+
* java栈 -Xss 设置最大栈值
5+
* 添加方法中的参数,查看递归次数
6+
*
7+
* @author :chenxin
8+
* @date :Created in 2020/3/26 12:51
9+
* @description:java栈 -Xss 设置最大栈值
10+
* @modified By:
11+
* @version: $
12+
*/
13+
public class JavaStackTest2 {
14+
int count = 0;
15+
16+
public static void main(String[] args) {
17+
new JavaStackTest2().f();
18+
}
19+
20+
void f() {
21+
long a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11;
22+
count++;
23+
System.out.println(count);
24+
f();
25+
}
26+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package JVM;
2+
3+
import java.util.ArrayList;
4+
5+
/**
6+
* 测试运行时修改堆大小
7+
* -Xms 初始堆值
8+
* -Xmx 最大堆值
9+
*
10+
* @author :chenxin
11+
* @date :Created in 2020/3/26 11:55
12+
* @description:测试运行时修改堆大小
13+
* @modified By:
14+
* @version: $
15+
*/
16+
public class TestEditHeapSize {
17+
public static void main(String[] args) {
18+
ArrayList<TestEditHeapSize> testEditHeapSizes = new ArrayList<>();
19+
while (true) {
20+
testEditHeapSizes.add(new TestEditHeapSize());
21+
System.out.println(testEditHeapSizes.size());
22+
}
23+
}
24+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package classLoader;
2+
3+
/**
4+
* 类加载器树
5+
*
6+
* @author :chenxin
7+
* @date :Created in 2020/3/25 15:20
8+
* @description:类加载器树
9+
* @modified By:
10+
* @version: $
11+
*/
12+
public class ClassLoaderTree {
13+
public static void main(String[] args) {
14+
ClassLoader classLoader = ClassLoaderTree.class.getClassLoader();
15+
while (classLoader != null) {
16+
System.out.println(classLoader.getClass().getName());
17+
classLoader = classLoader.getParent();
18+
}
19+
20+
if (classLoader == null) {
21+
System.out.println("BootstrapLoader is implemented by C");
22+
}
23+
}
24+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package classLoader;
2+
3+
/**
4+
* 测试使用-Xbootclasspath:/a 参数修改类的加载级别
5+
*
6+
* @author :chenxin
7+
* @date :Created in 2020/3/25 15:40
8+
* @description:测试使用-Xbootclasspath:/a 参数修改类的加载级别
9+
* @modified By:
10+
* @version: $
11+
*/
12+
public class Worke {
13+
14+
public void say() {
15+
System.out.println("load by AppClassLoader");
16+
final ClassLoader classLoader = ClassLoaderTree.class.getClassLoader();
17+
if (classLoader == null) {
18+
System.out.println("load by BootstrapClassLoader readly");
19+
} else {
20+
System.out.println(classLoader.getClass().getName());
21+
}
22+
}
23+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package classLoader;
2+
3+
import java.util.Arrays;
4+
5+
/**
6+
* @author :chenxin
7+
* @date :Created in 2020/3/25 15:50
8+
* @description:
9+
* @modified By:
10+
* @version: $
11+
*/
12+
public class WorkeTest {
13+
14+
public static void main(String[] args) {
15+
System.out.println(Arrays.toString(args));
16+
new Worke().say();
17+
}
18+
}

src/main/java/typeInfo/compilerAPI/JavaCompilerTask.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public static void compileJavaFromString() {
2929
s.append("}\n");
3030
s.append("}");
3131

32-
final Class<?> compile = comppile(className, s.toString());
32+
final Class<?> compile = compile(className, s.toString());
3333
try {
3434
Object o = compile.newInstance();
3535
Method main = compile.getMethod("main", String[].class);
@@ -39,7 +39,7 @@ public static void compileJavaFromString() {
3939
}
4040
}
4141

42-
private static Class<?> comppile(String className, String javaCodes) {
42+
private static Class<?> compile(String className, String javaCodes) {
4343
JavaSourceFromString srcObject = new JavaSourceFromString(className, javaCodes);
4444
System.out.println(srcObject.getCode());
4545
List<JavaSourceFromString> javaSourceFromStrings = Arrays.asList(srcObject);

0 commit comments

Comments
 (0)