Java程序运行机制
语言的编译型和解释型
- 编译型:在程序运行之前进行编译,将程序翻译成机器语言。
- 解释型:在程序运行时将程序翻译成机器语言。
Java程序运行过程
类加载器(classLoader)
类的装载由类加载器与它的子类实现。
启动类加载器(Bootstrap classLoader)
通过C++编写,无法通过程序得到,主要负责加载Java中的一些核心类库。
扩展类加载器(Extension classLoader)
Bootstrap classLoader 的子类,主要负责加载Java中的一些扩展类。
系统类加载器(System classLoader)
Extension class Loader 的子类,主要用于加载自己编写的类。
用户自定义类加载器
实现classLoader类即可,需满足三大特性,其余则根据自身需求编写。
三大特性
- 委托性:每个类都有自己的类加载器的属性,当一个类加载器需要加载一个类时,它会委托自己的父类加载器进行加载,父类加载器无法加载时才会自己加载,即自顶向下加载。
- 可见性:子类加载器可以利用父类加载器加载的类,反过来就不行。
- 单一性:类只会被加载一次。
总结
总结不来,菜鸡自用,辅助记忆,有错则改