JAVA类:我是如何被ClassLoader加载到内存的

本文介绍了JAVA类的加载模型,包括BootStrap ClassLoader、Extension ClassLoader和App ClassLoader的职责,以及ClassLoader的双亲委派加载机制。讲解了类加载的步骤,如装载、连接、验证、准备和初始化。还讨论了为何采用双亲委托模型以及JVM判断类是否相同的标准。
摘要由CSDN通过智能技术生成

前言

之前看到阿里的一个面试题,JAVA类的双亲委派加载机制是什么?有什么好处?工作这么久,还不知道一个JAVA类如何被加载到内存并运行起来的有点羞愧。不懂但是会搜索啊,这篇文章就这样诞生了。本文主要总结了JAVA的类加载模型(classLoader),一个类的加载过程。

 

 

 

 

ClassLoaderr定义

 

我们用eclipse或idea编写一个xxx.java文件,通过编译器编译成xxx.class文件,ClassLoader就是用来加载这些class文件到内存当中的。

 

三个默认ClassLoader

一、BootStrap ClassLoader:启动类加载器,最顶层类加载器,负责加载JDK中的核心类库,如:rt.jar、resources.jar、charsets.jar等。

二、Extension ClassLoader:扩展类加载器,负责加载Java的扩展类库,默认加载JAVA_HOME/jre/lib/ext/目下的所有jar。

三、App ClassLoader:系统类加载器,负责加载应用程序classpath目录下的所有jar。

除了Java默认提供的三个ClassLoader之外,用户还可以根据需要定义自已的ClassLoader,而这些自定义的ClassLoader都必须继承自java.lang.ClassLoader类(Extension ClassLoader和App ClassLoader也继承ClassLoader类)、以及重写父类的findClass方法,但是Bootstrap Cl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值