Skip to content

Commit e05c096

Browse files
committed
add xlass
1 parent 588dc3f commit e05c096

File tree

6 files changed

+22
-10
lines changed

6 files changed

+22
-10
lines changed

01jvm/Hello.xlass

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
5EA���������������������������������Ö��������֩���������𳖑����������������������פ�����Г���Ь������֩���Ü���������������������������ѕ������������������線���߼����߶�������������������������з��������Г���а���������Г���Ь�������������곕���Ж�Я�������������앞��Ж�Я�����������������������׳����Г���Ь������֩�����������������������������������H��N��������������������������������������N��������������������������������������M����I��N������������������������������

01jvm/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
1111
1.(选做)自己写一个简单的 HelloNum.java,里面需要涉及基本类型,四则运行,if 和 for,然后自己分析一下对应的字节码,有问题群里讨论。
1212

13-
2.(必做)自定义一个 Classloader,加载一个 HelloNum.xlass 文件,执行 hello 方法,此文件内容是一个 HelloNum.class 文件所有字节(x=255-x)处理后的文件。文件群里提供。
13+
2.(必做)自定义一个 Classloader,加载一个 Hello.xlass 文件,执行 hello 方法,此文件内容是一个 Hello.class 文件所有字节(x=255-x)处理后的文件。文件群里提供。
1414

1515
3.(必做)画一张图,展示 Xmx、Xms、Xmn、Meta、DirectMemory、Xss 这些内存参数的关系。
1616

@@ -41,7 +41,7 @@
4141
2. 找到 Projects --> Spring Initializr: https://start.spring.io/
4242
3. 填写项目信息, 生成 maven 项目; 下载并解压。
4343
4. Idea或者Eclipse从已有的Source导入Maven项目。
44-
5. 从课件资料中找到资源 HelloNum.xlass 文件并复制到 src/main/resources 目录。
44+
5. 从课件资料中找到资源 Hello.xlass 文件并复制到 src/main/resources 目录。
4545
6. 编写代码,实现 findClass 方法,以及对应的解码方法
4646
7. 编写main方法,调用 loadClass 方法;
4747
8. 创建实例,以及调用方法

01jvm/TestAddUrl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public static void main(String[] args) throws Exception {
1313
method.setAccessible(true);
1414
method.invoke(classLoader, new File(dir).getAbsoluteFile().toURL());
1515

16-
Class klass = Class.forName("Hello",true, classLoader);
16+
Class klass = Class.forName("HelloKimmking",true, classLoader);
1717
Object obj = klass.newInstance();
1818
Method hello = klass.getDeclaredMethod("hello");
1919
hello.invoke(obj);

01jvm/XlassLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public class XlassLoader extends ClassLoader {
1111

1212
public static void main(String[] args) throws Exception {
1313
// 相关参数
14-
final String className = "lib.Hello";
14+
final String className = "Hello";
1515
final String methodName = "hello";
1616
// 创建类加载器
1717
ClassLoader classLoader = new XlassLoader();

01jvm/lib/Hello.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1-
2-
public class Hello {
3-
public void hello() {
4-
System.out.println("hello,kimmking.");
5-
}
6-
}
1+
//package lib;
2+
//
3+
//public class Hello {
4+
// static {
5+
// System.out.println("Hello Class Initialized!");
6+
// }
7+
// public static void main(String[] args) {
8+
//
9+
// }
10+
//
11+
//}

01jvm/lib/HelloKimmking.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
public class HelloKimmking {
3+
public void hello() {
4+
System.out.println("hello,kimmking.");
5+
}
6+
}

0 commit comments

Comments
 (0)