类加载问题
来源:互联网 发布:zbrush4r7注册机 mac 编辑:程序博客网 时间:2024/06/05 15:10
有几本书上在介绍类加载器的用户自定义类加载器时说覆盖loadClass方法,比如李刚的《疯狂java讲义》,实际上这种覆写loadClass方法的做法是不提倡甚至是错误的。
看看JDK源码就可知类加载器的类继承结构:抽象类ClassLoader<-----SecureClassLoader<----URLClassLoader,除了引导类加载器Bootstrap ClassLoader是底层本地方法用C++实现的以外,其他所有类加载器都是ClassLoader的后代。
不能覆写loadClass方法的原因:
第一,双亲委托机制不允许破坏loadClass方法。假如覆盖这个方法破坏了双亲委托机制,例如一个类A只是Object的子类,那么加载这个类时由于破坏了双亲委托机制,那么其父类Object的加载检查不能完成,何况类A自身的加载,那轮都轮不到。在加载Object等父类和其他核心类的时候就会提示找不到路径的异常或者错误。
第二,JDK源码中SecureClassLoader URLClassLoader两个类都没有覆写抽象类ClassLoader的loadClass方法,JDK示例代码用户自定义类加载器要覆写的是findClass方法。
getInstance()方法,new ,反序列化是得到实例的几种方式,getInstance()方法是一个本地方法。
0 0
- 类加载问题
- java 类加载问题
- 类加载问题
- 动态加载类问题
- 类加载问题
- 扩展类加载器的加载问题
- 类加载顺序的问题
- 类或文件加载问题
- Jetty 类加载问题处理
- JVM类加载机制—加载的顺序问题
- 类初始化和类的加载问题
- 未能加载.NET基类问题
- Eclipse类加载机制带来的问题
- jboss4.2中的类加载问题
- 研究类加载问题的心得
- WAS6.1 类加载问题一例
- 一个类加载器的高级问题
- Android自定义类加载图片资源问题
- NSArray的用法
- USACO——Mixing Milk 混合牛奶
- Baseadapter的getItem和getItemId的作用和重写
- IO笔记
- uva 10635 nlogn LIS
- 类加载问题
- codeforces 527E Data Center Drama
- 黑马程序员——类与对象的关系
- linux 设置中文输入法
- 黑马程序员_日记22_JavaStringTrim练习
- 程序员掌中宝手册 适合it 手机白领 淘宝 物联网 芯片设计 cnoswinnnuixs 电脑维修人员(序言)
- 5.8.1 使用继承的注意点
- 经典必背---二叉树经典笔试面试题
- openCV学习笔记(5):使用sprintf函数实现在窗口连续显示同一文件夹下的图片