1.自定义类加载器,可以将其设置为unreachable状态 再通过GC卸载掉类 2.使用系统类加载器,但是不能将其设置为unreacheable状态 由于不能直接将系统类加载器设置为unreachable状态,所以当GC回收之后,类型并没有被卸载 3.使用扩展类加载器加载,无法将其状态设置为unreachable 同2,由于不能设置为unreachable,因此扩展类加载器所加载的类型并没有被GC回收 总结: 1。启动类型的加载器加载的不能被卸载,随着虚拟机的生命周期 2。标准扩展类型的加载器也不能被卸载,直接间接的被访问到 3。开发者自定义的类加载器实例加载的类型只有简单上下文的环境中才能被卸载,而且需要借助强制GC回收。 类加载器重复加载相同类型。 结论:如果同一个类加载器实例重复强制加载(含有定义类型defineClass动作)相同类型,会引起java.lang.LinkageError: duplicate class definition. 【类型更新总结】 由不同类加载器实例重复强制加载(含有定义类型defineClass动作)同一类型不会引起java.lang.LinkageError错误, 但是加载结果对应的Class类型实例是不同的,即实际上是不同的类型(虽然包名+类名相同). 如果强制转化使用,会引起ClassCastException.(说明: 头一段时间那篇文章中解释过,为什么不同类加载器加载同名类型实际得到的结果其实是不同类型, 在JVM中一个类用其全名和一个加载类ClassLoader的实例作为唯一标识,不同类加载器加载的类将被置于不同的命名空间).

java 怎样卸载一个类_java 类型卸载问题相关推荐

  1. scala java 区别_Scala(和Java)中的类和类型之间有什么区别?

    当您说"类型"时,我将假设您主要是指静态类型. 但是我将在短期内讨论动态类型. 静态类型是可以被静态证明的程序一部分的属性(静态表示"不运行它"). 在静态类型 ...

  2. java qq聊天界面_【附源码】用Java写了一个类QQ界面聊天小项目,可在线聊天!...

    原标题:[附源码]用Java写了一个类QQ界面聊天小项目,可在线聊天! 目录: 1.功能实现 2.模块划分 3.使用到知识 4.部分代码实现 5.运行例图 1.功能实现 1.修改功能(密码.昵称.个性 ...

  3. Java (1)写一个类,名为Animal, 该类有两个私有属性,name(代表动物的名字),和legs(代表动物的腿的条数);要求为两个私有属性提供public的访问方法。并提供两个重载的构造方法,

    Java (1)写一个类,名为Animal, 该类有两个私有属性,name(代表动物的名字),和legs(代表动物的腿的条数);要求为两个私有属性提供public的访问方法.并提供两个重载的构造方法, ...

  4. java定义一个类_Java类的定义格式:Java如何定义一个类

    在面向对象的思想中,最核心的就是对象.为了在程序中创建对象,首先需要定义一个类.类是对象的抽象,它用于描述一组对象的共同特征和行为,例如人都有姓名.年龄.性别等特征,还有学习.工作.购物等行为.以面向 ...

  5. java类里面再定一个类_java类的里面可以再定义一个类吗 java里可不可以在一个...

    java类里面还可以定义一个类,即内部类. java内部类分为: 成员内部类.静态嵌套类.方法内部类.匿名内部类 . 内部类的共性 (1).内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的. ...

  6. java数据类型 两大类_Java公开课|将Java数据类型分为这两大类,就能涵盖所有类型...

    [摘要]作为一门面向对象编程语言,Java吸收了C++语言的优点,也展现了其强大的一面,我们能在各个地方看到其功能强大和简单易用的两个特征,当然,也吸引了很多程序员的注意力,所以就有人想了解Java的 ...

  7. java数据类型 两大类_JAVA的数据类型分为两大类型

    JAVA的数据类型分为两大类型 public class Demo04 { public static void main(String[] args) { //八大基本数据类型 //整数 int n ...

  8. java定义一个类_java如何定义一个类,创建它的成员变量和方法?

    展开全部 类即对象的思想,一个对象包含e69da5e887aa3231313335323631343130323136353331333337623439了属于自己的成员变量和操作方法. 如何定义一个 ...

  9. java什么是原生类_Java 基础 - 原生类型

    更详细的说明,请参考: Java 原生类型与包装器类型深度剖析,https://blog.csdn.net/justloveyou_/article/details/52651211 一. 原生类型与 ...

最新文章

  1. 两个网站做到同一个服务器,两个网站放在同一个服务器 备案
  2. 基于双目事件相机的视觉里程计
  3. 图灵的秘密:他的生平、思想及论文解读pdf
  4. 百度工程师控制公司服务器“挖矿”:4个月赚10万 判刑3年
  5. Shiro系列-Shiro中Realm如何使用
  6. general protection fault怎么办_法院离婚调解书我想办补充协议怎么办?-免费法律咨询...
  7. 虚基类及其派生类的构造函数
  8. np实现sigmoid_【强基固本】基础算法:使用numpy实现逻辑回归随机梯度下降(附代码)...
  9. TypeScript学习(六):函数的定义及特性
  10. 【WPF】如何获取命令行参数
  11. IJCAI 2019 融合角色信息的多样性对话生成
  12. [51nod]2128 前缀异或【数学题】
  13. 最新短视频去水印小程序源码/带流量主/外卖CPS系统/批量解析/修改MD5
  14. 计算机术语 gc 是什么意思,GC是什么?为什么我们要去使用它
  15. iphone怎么找本地音乐_为什么iPhone会发出蜂鸣声或振动? 这是找出方法
  16. Linux Socket接口使用方法
  17. mac安装linux时触控板不能用,macbookpro上装Deepin 20.2后wifi和触摸板不可用的解决
  18. java实现家庭关系图_左孩子右兄弟二叉树实现家族家谱
  19. 【CSDN插件测评】效率增倍,程序猿开发必备插件
  20. MEMORY系列之“SRAM”

热门文章

  1. 【深度学习】生成对抗网络GAN|GAN、WGAN、WGAN-UP、CGAN、CycleGAN、DCGAN
  2. 网络——码元、速率、波特、带宽
  3. python将图片转矩阵
  4. workbook 读取excel表格
  5. Python搭建开发环境
  6. 一、使用JDK的keytool生成JKS以及获取JKS的信息
  7. ubuntu拷贝和移动文件和文件夹
  8. 511遇见易语言文本替换和子文本替换
  9. 系统架构设计知识梳理--分布式架构
  10. python中一切可迭代对象都支持解包 - Iterable Unpacking