Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

Java 类加载机制 ClassLoader Class.forName PDF 下载


分享到:
时间:2024-07-08 11:25来源:http://www.java1234.com 作者:转载  侵权举报
Java 类加载机制 ClassLoader Class.forName
失效链接处理
Java 类加载机制 ClassLoader Class.forName PDF 下载

 
 
相关截图:
 

主要内容:

类加载是Java程序运行的第一步,研究类的加载有助于了解JVM执行过程,并指导开发者采取更有效的
措施配合程序执行。
研究类加载机制的第二个目的是让程序能动态的控制类加载,比如热部署等,提高程序的灵活性和适应
性。
 
一、简单过程
Java程序运行的场所是内存,当在命令行下执行:
java HelloWorld
命令的时候,JVM会将HelloWorld.class加载到内存中,并形成一个Class的对象HelloWorld.class
其中的过程就是类加载过程:
1、寻找jre目录,寻找jvm.dll,并初始化JVM
2、产生一个Bootstrap Loader(启动类加载器);
3Bootstrap Loader自动加载Extended Loader(标准扩展类加载器),并将其父Loader设为
Bootstrap Loader
4Bootstrap Loader自动加载AppClass Loader(系统类加载器),并将其父Loader设为Extended
Loader
5、最后由AppClass Loader加载HelloWorld类。
以上就是类加载的最一般的过程。
 
二、类加载器各自搜索的目录
为了弄清楚这个问题,首先还要看看System类的API doc文档。
1Bootstrap Loader(启动类加载器):加载System.getProperty("sun.boot.class.path")所指定的路
径或jar
2Extended Loader(标准扩展类加载器ExtClassLoader):加载
System.getProperty("java.ext.dirs")所指定的路径或jar。在使用Java运行程序时,也可以指定其搜索路
径,例如:java -Djava.ext.dirs=d:/projects/testproj/classes HelloWorld
3AppClass Loader(系统类加载器AppClassLoader):加载System.getProperty("java.class.path")
所指定的路径或jar。在使用Java运行程序时,也可以加上-cp来覆盖原有的Classpath设置,例如: java
-cp ./lavasoft/classes HelloWorld
ExtClassLoaderAppClassLoaderJVM启动后,会在JVM中保存一份,并且在程序运行中无法改变其
搜索路径。如果想在运行时从其他搜索路径加载类,就要产生新的类加载器。
 
三、类加载器的特点
1、运行一个程序时,总是由AppClass Loader(系统类加载器)开始加载指定的类。2、在加载类时,每个类加载器会将加载任务上交给其父,如果其父找不到,再由自己去加载。
3Bootstrap Loader(启动类加载器)是最顶级的类加载器了,其父加载器为null.
 



 
 
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐