JVM学习笔记-内存与垃圾回收篇【类加载子系统】
2021/11/26 7:11:57
本文主要是介绍JVM学习笔记-内存与垃圾回收篇【类加载子系统】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
类加载子系统
类加载子系统作用
类的加载过程
类的加载过程
类的加载过程一:Loading
类的加载过程二:Linking
类的加载过程三:Initialization
tips:
1、如果当前的类中没有声明静态变量和没有静态代码块,则不会存在<clinit>类构造器方法
2、任何一个类声明以后,内部至少存在一个类的构造器
例子:为什么能直接给number赋值 因为它再linking的prepare阶段已经被初始化为0
类加载器的分类
tips:
1、对用户自定义类来说:默认使用系统类加载器进行加载
2、Java的核心类库都是使用引导类加载器进行加载的
3、在程序中获取不到引导类加载器,因为它是由c/c++进行编写的
启动类加载器
扩展类加载器
在idea中打印时它的简写是ExtClassLoader
应用程序类加载器
自定义加载器
什么时候使用自定义加载器
用户自定义类加载器 实现步骤
ClassLoader的常用方法即获取方法
(简单了解下)
双亲委派机制
什么是双亲委派机制
双亲委派机制工作原理
例子1:
执行main方法时候 向上加载ClassLoader 然后引导类加载器加载后发现 string是没有main方法的 因为这是加载不到当前类
例子2:
在java.lang包下面根本没有这个类 所以 引导类加载器加载时抛出安全异常 这个lang包是有访问权限的 它是组织我们在这个包下自定义类(起到保护作用)
沙箱安全机制
上面这个例子1、2就是沙箱安全机制起了作用
双亲委派机制的优势
1、避免类的重复加载
2、保护程序安全,防止核心API被随意修改(看例子1、例子2)
其他
1、在JVM中表示两个class对象是否为同一个类存在两个必要条件:
2、对类加载器的引用
3、类的主动使用和被动使用
这篇关于JVM学习笔记-内存与垃圾回收篇【类加载子系统】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?