Java 类加载相关知识
来源:互联网 发布:怎么开通淘宝客 编辑:程序博客网 时间:2024/04/29 16:46
注意:本课重点是认识类加载器,及类加载器的加载顺序,了解自己类加载器的编写
Java内置三个类加载器,其中 BootStrap 内置于虚拟机中,不是Java语言编写,它是最始祖的类加载器;
ExtClassLoader和AppClassLoader是Java内置的类加载器,它们由Java语言编写,它们分别加载不同目录下的
Java类,它们加载的目录如上图的右方所示。
你可以编写自己的类加载器,你的类只需要继承 ClassLoader 类并实现相关方法即可,此主题下面会谈到。
有那么多类加载器,那这些类加载器如何分工的呢? 就是委托机制。
委托机制简单的说就是: 每个类加载器加载类时,又先委托给其上级类加载器.
如何编写自己的类加载器(暂时了解即可):
下面是一个示例代码:
public class MyClassLoader extends ClassLoader{private String classDir;public MyClassLoader(){}public MyClassLoader(String classDir){this.classDir = classDir;}//只看此方法即可,它是重点@Override //覆盖父类findClass方法 protected Class<?> findClass(String name) throws ClassNotFoundException {//先得出要加载的类的名子String classFileName = classDir + "\\" + name.substring(name.lastIndexOf('.')+1) + ".class";try {FileInputStream fis = new FileInputStream(classFileName);ByteArrayOutputStream bos = new ByteArrayOutputStream();//解密类,并把解密好的类放到 bos 字节数组中cypher(fis,bos);fis.close();System.out.println("aaa");byte[] bytes = bos.toByteArray();//调用defineClass方法,返回自己类加载器加载的类return defineClass(bytes, 0, bytes.length);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}}
- Java类加载相关知识
- Java 类加载相关知识
- Java类加载相关知识
- Java类加载和初始化相关知识
- Java类加载器相关
- java--类加载相关知识点
- java:Properties类的相关知识
- java反射类的相关知识
- java包装类相关知识总结
- java类加载机制的简单知识
- Java相关知识
- JAVA Socket 相关知识
- Java 注解相关知识
- Java相关知识
- JAVA相关知识
- 转:java相关知识
- java相关知识
- JAVA相关知识1
- Material Workbench - Inbound check box
- Server sent unexpected return value (403 Forbidden) in response to OPTIONS request for
- poj 1159 Palindrome
- Extjs 解决表单提交总是执行failure回调函数
- android pppd拨号问题及解决办法
- Java 类加载相关知识
- 有关读书求知的一些想法
- 中国再现大规模Android手机病毒 逾50万手机受感染
- Tomcat下的appBase和docBase
- 分享一段程序代码:用PHP做图片锐化程序[绝对好用]
- 质量管理---全员参与
- 关于vim,ctags的使用[转]
- 学习OpenCV 第二章示例
- 湿身防晒有保障