疏窗

  • 首页
  • 生活
  • Java
  • Python
  • Golang
  • 其他
  • 归档

  • 搜索
leetcode jdk 生活 nas nosql 数据库 线程 爬虫 中间件

Java类加载器

发表于 2019-12-13 | 分类于 Java | 0 | 阅读次数 1453

类加载器

一、 自定义类加载器

步骤:

  1. 继承java.lang.ClassLoader类
  2. 重写FindClass方法

二、 类加载器类型

  1. BootstrapClassLoader
  • c++ 编写、加载java.*下的库
  1. ExtClassLoader
  • java 实现、加载标准扩展库如javax.* 、classpath中的jre、java.ext.dir 指定位置中的class文件
  1. AppClassLoader
  • java 实现、加载程序所在的目录
  1. 自定义ClassLoader
  • 用户自定义加载器、可加载指定位置的class文件

三、 双亲委派机制

类加载器双亲委派模型是从JDK1.2以后引入的,并且只是一种推荐的模型,不是强制要求的,因此有一些没有遵循双亲委派模型的特例:(了解)

  1. 什么是双亲委派?
  • 当某个类加载器需要加载某个.class文件时,它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类。
  1. 双亲委派的作用?
  • 防止重复加载.class文件。通过委托去询问上级是否已经加载过该.class,如果加载过了,则不需要重新加载。保证了数据安全。
  • 保证核心.class不被篡改。通过委托的方式,保证核心.class不被篡改,即使被篡改也不会被加载,即使被加载也不会是同一个class对象,因为不同的加载器加载同一个.class也不是同一个Class对象。这样则保证了Class的执行安全。
  1. 怎样打破双亲委派机制?
  • 重写loadClass
  • 使用线程上下文类加载器
打赏作者
疯子虾夫 微信支付

微信支付

疯子虾夫 支付宝

支付宝

  • 本文作者: 疯子虾夫
  • 本文链接: https://hefengwei.com/archives/1576248177
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
mybatis collection标签的使用
nginx 配置
  • 文章目录
  • 站点概览
疯子虾夫

疯子虾夫

24 日志
5 分类
9 标签
RSS
Creative Commons
© 2025 疯子虾夫
由 Halo 强力驱动
|
主题 - NexT.Mist v5.1.4
赣ICP备2024026242号

粤公网安备 44010602005909号