专栏名称: 顶尖架构师栈
分享业务架构、技术架构、系统设计方案,以及微服务架构源码,提供业务场景答疑
今天看啥  ›  专栏  ›  顶尖架构师栈

Java面试一天一题(day 5面试题:类的生命周期?)

顶尖架构师栈  · 公众号  · 科技自媒体  · 2024-09-05 07:55
    

主要观点总结

本文介绍了Java中的类加载机制,包括类的加载、连接、初始化等阶段,详细解释了类加载器的作用和种类,以及双亲委派模型的概念和应用场景。

关键观点总结

关键观点1: 类的加载过程

Java程序运行期间,类的加载过程包括加载、验证、准备、解析、初始化等阶段。其中,加载阶段是将类的字节码文件加载到JVM中,验证阶段是对字节码进行校验,确保类的正确性,准备阶段为类变量分配内存并设置初始值,解析阶段将符号引用转换为直接引用,初始化阶段则是调用构造器方法初始化类的静态变量。

关键观点2: 类加载机制

Java中的类加载机制包括全盘负责和双亲委托模型。全盘负责是指一个类加载器负责加载某个类及其依赖的所有类。双亲委托模型是指先委托父类加载器去加载目标类,只有在父类加载器无法完成加载任务时,才由自己的类加载器尝试去加载。

关键观点3: 类加载器的种类

Java中的类加载器分为Bootstrap ClassLoader、Extension ClassLoader、Appclass Loader等。其中Bootstrap ClassLoader负责加载核心类库,Extension ClassLoader负责加载扩展类库,Appclass Loader负责加载应用程序的classpath下的类文件。

关键观点4: 自定义类加载器的实现

自定义类加载器的实现需要继承java.lang.ClassLoader类,并重写findClass方法。在findClass方法中,将class字节码数组转换为Class类的实例,然后调用loadClass方法完成类的加载。

关键观点5: 双亲委派模型的应用场景

双亲委派模型的主要应用场景包括避免类的重复加载、保证基础类的统一性、JDBC驱动的实现和Web应用的热部署等。

关键观点6: 小结

本文总结了Java中的类加载机制,包括类的生命周期、类加载器的种类和自定义类加载器的实现方式,以及双亲委派模型的应用场景。对于以后面对类加载流程的问题,读者应该能够了然于胸。


文章预览

最近人口调查出炉,这爆裂的男女人口比例,你慌了吗?还好程序员不用担心这个问题,因为他可以 new 一个,哈哈哈,之前我们了解了对象的产生过程,其中我们谈到了类的加载,这节我打算好好来絮叨絮叨,类是如何加载的,搬好小板凳,展示! 1 什么是类的加载     一个完整的的类加载机制在整个java程序运行期间处于一个什么环节,如下图所示 其中java编译器将java文件编译成.class文件,接下来由类装载器将这些.class文件加载到JVM中,一言以蔽之,JVM通过 类加载器 将class文件字节码文件加载到内存中, 并将这些静态数据转换成方法区中的运行时数据结构,在堆(并不一定在堆中,HotSpot在方法区中)中生成一个代表这个类的Class 对象,作为方法区类数据的访问入口 2 类加载的过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,包含三大部 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览