⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠ You can decompress Drawing data with the command palette: ‘Decompress current Excalidraw file’. For more info check in plugin settings under ‘Saving’

Excalidraw Data

Text Elements

Java 程序执行有三个阶段

代码阶段/编译阶段

class Cat{ // Cat.java
String name
Cat(){}
public hi(){}…
}

javac编译

Cat.class 字节码文件

String name
Cat(){}
pubic hi(){}
…

Runtime 运行阶段

Cat cat = new Cat();
new 了对象导致类加载

Class类阶段(加载阶段)

在堆,生成Class类对象

成员变量 Filed[] fields

构造器

成员方法…

使用类加载器(ClassLoader)
调用loadClass()进行类加载

cat对象/堆
该对象知道他是属于哪个Class对象

得到Class对象后
就可以创建对象,调用方法,操作属性。。。

方法区

生成类的字节码二进制文件

Java 的类加载阶段是 JVM Runtime 执行过程中的一部分,而不是与 Runtime 分离的独立阶段。