lz这问题网上一搜一堆,但感觉都用处不大,我把感觉对lz有用总结下写一些。
java要运行就必须把程序所包含的类都加载入内存,但并不是一次性都加入,只把保证程序运行的基础类一次性加入内存,其它来等jvm用到的时候在加载(这有点像虚拟内存),
这样就节省了内存开销。那么完成把类从硬盘加载如内存的就是java类加载器:
java类加载器其实也是java类,分为三个层次:系统类加载器,扩展类加载器和应用类加载器。这三层类加载器相互协作。
类加载器负责寻找接口或类的字节码文件进行解析并构造jvm内部对象表示的组件,java类加载器具体工作过程如楼上所说,我就不多说了。 |