JAVA类加载器

欢迎来到我的博客

你好! 这是我第一篇博客,主要介绍一下java类加载器

什么是类加载器?

类加载器就是加载字节码文件(.class)的类。
在这里插入图片描述
java语言是一种动态性的解释语言。类(class)只有加载到JVM中才可以运行,当运行指定的程序时,JVM会把编译生成的.class字节码文件按照一定的规则加载到内存中,形成一个完整的java应用程序。这个加载过程就是由类加载器来完成的,具体来说,就是由classLoader和它的子类来实现的。

常见的类加载器(java的类加载机制采用父委派机制)

1.根类加载器(采用c++编写,看不到源码)。
2.扩展类加载器(加载位置:jre/lib/ext)
3.系统加载器(加载位置:classpath下)
4.自定义加载器(必须继承classLoader

*父委派机制:当有类需要被加载时,会优先调用父类来完成加载工作,父类会使用自己的搜索路径来搜索加载的类,如果搜索不到的话,才会由子类用它的搜索路径来待加载的类。

类加载的方式

1.隐式加载:当程序使用new等方式创建对象时,会隐式的调用类加载器,把对应的类加载到JVM中。
2.显式加载:直接调用class.forName()方法,把所需要的类加载到JVM中。

类加载器的步骤

  1. 装载。(根据查找路径找到相应的.class文件,然后导入)
  2. 链接。(链接又分为三个小步骤:1.检查。检查待加载的class文件的正确性。2.准备。给类 中的静态变量分配存储空间。3.解析。将符号引用转换为直接引用)
  3. 初始化。(给静态变量和静态代码块执行初始化操作)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值