Skip to content

Commit 2ea655a

Browse files
committed
add hello method
1 parent aebe322 commit 2ea655a

File tree

6 files changed

+35
-10
lines changed

6 files changed

+35
-10
lines changed

01jvm/AnalysisForList.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
public class AnalysisForList {
2+
3+
private int[] array = new int[] {1,2,3};
4+
5+
public void testFor() {
6+
for (int i : array) {
7+
System.out.println(i);
8+
}
9+
}
10+
11+
public void testForIndex() {
12+
for (int i=0;i<array.length;i++) {
13+
System.out.println(array[i]);
14+
}
15+
}
16+
17+
public void testForIndex01() {
18+
int len = array.length;
19+
for (int i=0;i<len;i++) {
20+
System.out.println(array[i]);
21+
}
22+
}
23+
24+
}

01jvm/Hello.xlass

Lines changed: 0 additions & 1 deletion
This file was deleted.

01jvm/XlassLoader.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ public class XlassLoader extends ClassLoader {
1111

1212
public static void main(String[] args) throws Exception {
1313
// 相关参数
14+
final String packageName = "lib";
1415
final String className = "Hello";
1516
final String methodName = "hello";
1617
// 创建类加载器
1718
ClassLoader classLoader = new XlassLoader();
1819
// 加载相应的类
19-
Class<?> clazz = classLoader.loadClass(className);
20+
Class<?> clazz = classLoader.loadClass(packageName + "." + className);
2021
// 看看里面有些什么方法
2122
for (Method m : clazz.getDeclaredMethods()) {
2223
System.out.println(clazz.getSimpleName() + "." + m.getName());

01jvm/lib/Hello.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
// static {
55
// System.out.println("Hello Class Initialized!");
66
// }
7-
// public static void main(String[] args) {
8-
//
7+
// public void hello() {
8+
// System.out.println("Hello class say hello method.");
99
// }
1010
//
1111
//}

01jvm/lib/Hello.xlass

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

01jvm/out/production/01jvm/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88

99
> Week01 作业题目:
1010
11-
1.(选做)自己写一个简单的 HelloNum.java,里面需要涉及基本类型,四则运行,if 和 for,然后自己分析一下对应的字节码,有问题群里讨论。
11+
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

@@ -25,12 +25,12 @@
2525
## 操作步骤
2626

2727

28-
### 作业1(选做
28+
### 作业1(必做
2929

30-
1. 编写代码, 根据自己的意愿随意编写, 可参考: [HelloNum.java](./Hello.java)
30+
1. 编写代码, 根据自己的意愿随意编写, 可参考: [HelloNum.java](./HelloNum.java)
3131
2. 编译代码, 执行命令: `javac -g HelloNum.java`
3232
3. 查看反编译的代码。
33-
- 3.1 可以安装并使用idea的jclasslib插件, 选中 [HelloNum.java](./Hello.java) 文件, 选择 `View --> Show Bytecode With jclasslib` 即可。
33+
- 3.1 可以安装并使用idea的jclasslib插件, 选中 [HelloNum.java](./HelloNum.java) 文件, 选择 `View --> Show Bytecode With jclasslib` 即可。
3434
- 3.2 或者直接通过命令行工具 javap, 执行命令: `javap -v HelloNum.class`
3535
4. 分析相关的字节码。【此步骤需要各位同学自己进行分析】
3636

@@ -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. 创建实例,以及调用方法

0 commit comments

Comments
 (0)