Java中的基础----JVM加载class文件的原理

Java是一种解释型语言,class文件只有被加载到JVM中才能运行。当运行指定程序时,JVM会将编译生成的.class文件按一定的规则(从硬盘)加载到内存中(由类加载器classLoader和它的子类来完成)。

有以下两种加载方式:

1)隐式加载:

程序使用new等方式创建对象时,调用类的加载器把对应的类加载到JVM中。

2)显式加载

程序直接调用class.forName()方法把所需的类加载到JVM中。

在Java中,类的加载是动态的,并不是一次性将所有类全部加载后才运行,即需要的时候才去加载相应的类class。

类的加载器分为3类:

1)系统类Bootstrap Loader---负责加载系统类(jre/lib/rt.jar的类)

2)扩展类ExtClassLoader ---负载加载扩展类(jar/lib/ext/*.jar的类)

3)自定义类AppClassLoader---负责加载应用类(classpath指定的目录或者jar中的类)

当有类需要加载时,通过委托父类加载器来进行载入的方式进行。


类的加载步骤:

1)装载---根据查找路径找到相应的class文件,然后导入。

2)链接---①检查待加载的class文件的正确性②给类中的静态变量分配存储空间③将符号引用转换成直接引用(可选)。

3)初始化---对静态变量和静态代码块执行初始化操作。(加载时执行一次)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值