icode icode
首页
  • Android学习

    • 📁基础内容
    • 📺AndroidCore
    • 🎨Android-UI
    • 🏖️Components
    • 📊Fragment
    • 🔗网络操作
    • 🔏异步机制
    • 📦数据存储
    • 🗃️Gradle
  • 学习笔记

    • 『框架』笔记
    • 『Kotlin』笔记
    • 《Vue》笔记
    • 《Git》学习笔记
    • 『Bug踩坑记录』
  • ListView
  • RecyclerView
  • ViewPager
  • Java笔记

    • 🟠JavaSE
    • 🟢JavaWeb
    • 🔴JavaEE
    • ⚪JavaTopic
    • 🍳设计模式
  • 计算机基础

    • 📌计算机网络
    • 🔍数据结构
    • 📦数据库
    • 💻OS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 关于

    • 📫关于我
  • 收藏

    • 网站
    • 资源
    • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

iqqcode

保持对技术的探索实践与热爱
首页
  • Android学习

    • 📁基础内容
    • 📺AndroidCore
    • 🎨Android-UI
    • 🏖️Components
    • 📊Fragment
    • 🔗网络操作
    • 🔏异步机制
    • 📦数据存储
    • 🗃️Gradle
  • 学习笔记

    • 『框架』笔记
    • 『Kotlin』笔记
    • 《Vue》笔记
    • 《Git》学习笔记
    • 『Bug踩坑记录』
  • ListView
  • RecyclerView
  • ViewPager
  • Java笔记

    • 🟠JavaSE
    • 🟢JavaWeb
    • 🔴JavaEE
    • ⚪JavaTopic
    • 🍳设计模式
  • 计算机基础

    • 📌计算机网络
    • 🔍数据结构
    • 📦数据库
    • 💻OS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 关于

    • 📫关于我
  • 收藏

    • 网站
    • 资源
    • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • JavaSE

    • 面向对象

    • 常用API

    • 集合类

    • 多线程

    • JDK8新特性

      • Lambda表达式
      • 定义注解
      • 反射笔记温习
      • 反射之类加载器,动态代理
        • ClassLoader 类加载器
          • 1. 定义:
          • 2. JDK内置的三大类加载器
          • 3. 类加载器的双亲委派模型
          • 4. 反射与动态代理
      • 函数式接口
      • 匿名内部类
    • IO流

    • JVM

  • JavaWeb

  • JavaEE

  • JavaTopic

  • 设计模式

  • 计算机基础

  • Java后端
  • JavaSE
  • JDK8新特性
iqqcode
2021-06-17
目录

反射之类加载器,动态代理

# ClassLoader 类加载器

# 1. 定义:

**类加载:**通过一个类的全名称来获取此类的二进制文件字节流

**类加载器:**实现类加载功能的代码模块


1563593470134

# 2. JDK内置的三大类加载器

# BootStrap (启动类加载器)

  1. 使用C++语言实现,是JVM自身的一部分,独立于JVM外部,并且无法被Java程序直接使用

  2. 负责将存放于JAVA_HOME\lib目录下==能被 JVM 识别==的所有类库(rt.jar---java基础类库[Object类,Data类])加载到 JVM中

    **jar文件:**java的压缩文件,存放编译好的class文件

# ExtClassLoader(拓展类加载器)

  1. 使用Java语言实现,可以被Java程序直接引用
  2. 负责将存放于 JAVA_HOME\lib\ext (xml文件解析类,Swing界面框架类) 目录下的所有能被 JVM 识别的类库

# AppClassloader(应用程序类加载器)

  1. 使用Java语言实现,如果用户没有实现自定义类加载器,则APPClassLoader就是程序中默认的类加载器
  2. 负责加载用户classpath指定的类库

# 3. 类加载器的双亲委派模型

**定义:**四种类加载器的层次模型称为==类加载器的双亲委派模型==

1563595225153

工作流程:

如果一个类加载器收到了类加载请求,它首先不会自己去尝试加载这个类,而是把这个请求委托给父类加载器去完成,每一个层次的类加载器都是如此。==因此,所有的加载请求都应当传送到顶层的BootStrap加载器中,只有当父加载器反馈无法完成这个加载请求时(在自己搜索范围中没有找到此类),子加载器才会尝试自己去加载。==

存在意义:

==双亲委派模型对于保障Java程序的稳定运行十分重要==

例如:

java.lang.Object ,它存放在rt.jar 中,由于双亲委派模型的存在,无论哪一类类加载器加载此类,最终都是委派给处于顶端的启动类加载器进行加载。因此,Object类在程序的各种类加载器环境中都是同一个类

比较两个类是否相等的前提条件:

这俩个类是由同一个类加载器加载的,只要加载这俩个类的类加载器不通,则这俩个类不相同...

# 4. 反射与动态代理

编辑 (opens new window)
上次更新: 2021/06/27, 10:49:09
反射笔记温习
函数式接口

← 反射笔记温习 函数式接口→

最近更新
01
匿名内部类
10-08
02
函数式接口
10-08
03
ARouter-Kotlin踩坑
10-05
更多文章>
Theme by Vdoing | Copyright © 2021-2023 iqqcode | MIT License | 备案号-京ICP备2021028793号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×