A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

看了张老师的视屏后,就感觉到了不同的类加载器加载不同的类,而我们写的类都用appclassload加载器加载不就好了吗,为什么还要自定义加载器呢!?请大神仔细给俺分析下!谢谢!

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

3 个回复

正序浏览
默认的类加载器只知道如何从本地系统加载类,但是Java还可以从网络上加载类。例如,浏览器可以通过自定义的类加载器加载类。 还有很多加载类的方式,除了简单的从本地或者网络外,还可以通过自定义方式把你关心的任何东西以字节码的形式集成到你的应用中。
java中默认有三种类加载器:引导类加载器,扩展类加载器,系统类加载器(也叫应用类加载器)
类加载器是Java最强大的特征之一。但是我们常常忘记类加载组件。类加载器是在运行时负责寻找和加载类文件的类。Java允许使用不同的类加载器,甚至自定义的类加载器。 Java 程序包含很多类文件,每一个都与单个Java类相对应,这些类文件不像静态C程序,一次性加载入内存,它们随时需要随时加载。这就是类加载器与众不同的地 方。它从源文件(通常是.class 或 .jar文件)获得不依赖平台的字节码,然后将它们加载到JVM内存空间,所以它们能被解释和执行。默认状态下,应用程序的每个类由 java.lang.ClassLoader加载。因为它可以被继承,所以可以自由地加强其功能。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
默认的类加载器只知道如何从本地系统加载类。当你的程序完全在本机编译的话,默认的类加载器可以胜任。但是Java中常用的就是从网络上而不只是本地加载类。
你还可以通过自定义如下功能:1,执行非信任代码前自动验证数字签名,2,根据用户提供的密码解密代码,3,根据用户的需要动态的创建类

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
自定义的加载器可以定义加密功能   
这样就可以将一些不想被他人访问的类文件放到指定的文件夹  用自定义的加载器去加载
别人就无法访问到了

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马