类的加载/卸载

作者: 就这些吗 | 来源:发表于2020-02-20 05:17 被阅读0次

符号地址与引用地址的区别是什么?

在编译时,java类并不知道引用类的实际内存地址,因此只能使用符号引用来代替。比如org.simple.People类引用org.simple.Tool类,在编译时People类并不知道Tool类的实际内存地址,因此只能使用符号org.simple.Tool(假设)来表示Tool类的地址。而在类装载器装载People类时,此时可以通过虚拟机获取Tool类 的实际内存地址,因此便可以既将符号org.simple.Tool替换为Tool类的实际内存地址,及直接引用地址。

加载:

将二进制字节码转化成读到JVM中,映射成JVM能加载的数据结构(Class)

连接:

连接又分为三个步骤,
首先是验证字节码是否符合JVM规范
其次是给静态变量赋值默认值,侧重点在于分配所需要的内存空间
最后是将符号引用转换成直接引用地址

初始化:

给静态变量赋正确的初始值。
执行构造器,成员变量初始化和代码块的执行

怎么判断一个类可以卸载了?

1.加载这个类的加载器已经被回收了
2.堆中没有这个类的实例
3.该类对应的java.lang.Class对象没有任何地方被引用,无法在任何地方通过反射访问该类的方法。

什么是双亲委派模型

先由自己的父加载器加载,如果不能加载再轮到自己


image.png

TOMCAT为什么破坏双亲加载模型?

tomcat类加载器为什么要破坏双亲委派机制?

1.为了复用公共的类库,
每个webapp有自己的目录和类库,比如一个webapp使用类库A1.0版本,一个webapp使用类库A2.0版本,父类加载器加载类库A1.0版本,如果使用双亲委派,会由commonClassLoader去加载类库A1.0版本,这样第二个webapp会有问题
2.热加载jsp
而JasperLoader的加载范围仅仅是这个JSP文件所编译出来的那一个.Class文件,它出现的目的就是为了被丢弃:当Web容器检测到JSP文件被修改时,会替换掉目前的JasperLoader的实例,并通过再建立一个新的Jsp类加载器来实现JSP文件的HotSwap功能

重写loadClass和findClass的区别?

实现自己的类加载时,重写方法loadClass与findClass的区别
重写findClass
首先会通过父类加载器进行加载,如果所有父类加载器都无法加载,再通过用户自定义的findClass方法进行加载。
重写loadClass
此时首先是通过用户自定义的类加载器来判断该类是否可加载,如果可以加载就由自定义的类加载器进行加载,如果不能够加载才交给父类加载器去加载。

相关文章

  • jvm 类加载/卸载 相关参数

    -verbose:class 跟踪类的加载卸载 -XX:+TraceClassLoading 跟踪类的加载 可跟踪...

  • 虚拟机类加载机制

    虚拟机类加载机制 @(Java虚拟机)[类加载] [TOC] 类加载时机 类加载到卸载的生命周期包括: 加载(Lo...

  • java类加载机制、类加载器、自定义类加载器

    java类加载机制、类加载器、自定义类加载器 类加载机制 java类从被加载到JVM到卸载出JVM,整个生命周期包...

  • 类加载机制

    类加载的时机 类被加载到虚拟机内存中开始,到卸载为止,整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载...

  • 类的加载和对象的创建过程

    类的加载: 类的加载路线差不多是这样的: 加载->链接(验证->准备->解析)->初始化->使用->卸载 加载:会...

  • jvm

    类加载机制 类的生命周期:加载,链接,初始化,使用,卸载 类加载器:(待补充) 双亲委派模型:当类加载器试图加在某...

  • 类的加载/卸载

    符号地址与引用地址的区别是什么? 在编译时,java类并不知道引用类的实际内存地址,因此只能使用符号引用来代替。比...

  • JVM类加载机制

    1 类的加载过程 类被加载到虚拟机到卸载,整个生命周期包括:加载、验证、准备、解析、初始化,使用和卸载七个阶段。其...

  • JVM学习(二)类加载器

    目录 一、类加载器 还记得类加载机制吗?类加载机制的各阶段是加载、连接(验证、准备、解析)、初始化、使用、卸载。可...

  • 《深入理解jvm》读书笔记之——类加载机制(类的初始化)

    类加载的生命周期: 加载 -> 验证 -> 准备 -> 解析 -> 初始化 -> 使用 -> 卸载 加载 -> 验...

网友评论

    本文标题:类的加载/卸载

    本文链接:https://www.haomeiwen.com/subject/jddtqhtx.html