java类的加载与加载器

Student s=new Student(); 是我们自己创建的一个类,java加载类时,用到哪个类会将该类加载。(边用边加载)

JVM如何加载Student这个类?(加载-链接-初始化)

1.JVM把Student这个类的Class对象加载进来了

第一次加载该类时,JVM先从磁盘上找到该类的字节码文件(Student.class),JVM从系统环境变量的CLASSPATH里面找字节码文件的搜索路径。

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar(.代表CLASSPATH工程目录下(如要找Student类,要找对应的Module下找要加载的类),如果不是自己写的,会在后面的jdk库里面找字节码文件(如:System类.out等),将系统写好的打包放在架包里

通过类加载器,从Student.class字节码文件中,把这个类的各种信息(类名、类的属性和方法)先加载到JVM中,这些信息的集合(相当于人的户口信息)称作Class对象(大写C)

 2.链接:验证类的Class对象的合法性,开辟内存空间。

准备、验证的过程,验证当前类能够在JVM上运行(检车类的Class对象),给类的static静态成员开辟内存空间,如果当前类还有基类,继续加载其基类(执行1.2.3步)。

3.初始化

给static静态成员初始化,调用类的static静态初始化块

到此,类的加载完成了!

猜你喜欢

转载自www.cnblogs.com/laurarararararara/p/11773625.html