浅谈Java中类的加载
首先创建一个.java文件,我们在命令行中用javac命令进行编译
编译完打开Person.class文件,这就是字节码文件,16进制的
然后我们删除掉Test.Java文件,尝试运行没问题,这就是运行时的时候不需要.java文件,只需要字节码文件
执行javah -jni Person你会发现生成.h文件,也就是C++,这里知道启动类加载器的是C++写的就行
Jvm是如何使用这些class文件的,就需要类加载器
类加载器把class字节码文件加载到运行内存中
(Extension)Java:扩展类
JDK不同版本都在扩展类这更新
类加载过程
1)加载:使用用于加载类文件的机制来加载包含main方法的类文件的内容,类如MyProgram类文件。
2)解析:如果MyProgram拥有类型为另一个类的域或者超类,该类文件也会被加载。
类的解析:加载某个类依赖的所有类的过程。
3)执行:虚拟机执行MyProgram中的main方法,因为main方法是静态的,无需创建实例。
4)加载main方法或mian方法调用的更多的类。