黑马程序员技术交流社区

标题: 求高手,能不能给我简单说下类加载器和代理的可理论知识! [打印本页]

作者: JinnyZh    时间: 2013-6-4 13:28
标题: 求高手,能不能给我简单说下类加载器和代理的可理论知识!
马上要去面试了,  这2个方面还是一团浆糊, 网上看了很多都不明白!
这个面试老师一般会问这2个知识点哪个方面的内容?
另外为什么要自定义类加载器, 代理的意义!!
作者: 刘海芳    时间: 2013-6-4 14:21
一、自定义加载器的作用很大,这里列举几个应用场景:
1、加载与java内置同名的类:如想自定义一个类叫String(jdk已有),并且使用,这里就必须要使用自定义类加载器了,因为类加载器使用了委托模式(上级类加载器加载优先),虚拟机会优先加载了jdk内置的string:也就是说自定义的string类不会被加载,这个时候只能自定义类加载来加载自己的string类,具体的步骤就不累述了。
2、如果你的类使用了混淆(安全机制,通过某种算法,把类的内容转换成各种看不懂的东东),这个时候,如果自己使用内置加载器肯定是不行滴(你都看不懂,虚拟机肯定也看不懂啦),所有要自定义类加载器来先反混淆,再加载。
3、加载特定路径的类:java的三大类加载器都固定加载jdk所装电脑的某个路径(extclassloader负责加载jar/lib/ext/*.jar中的类,appclassloader负责classpath指定的目录或jar中的类),如果出于安全我们可能想把某个类放到另外一台电脑上,我们就必须自定义加载了。

二、代理的意义,也是列举几个:
1、日志记录:比如你想知道一个类中每个方法执行的时间,此时你就可以使用代理。
2、安全机制:比如权限。。。。
spring 的aop就是把代理用的淋淋尽致,楼主不妨看看spring的aop,很清楚。

作者: youngster    时间: 2013-6-4 14:43
我感觉每个老师面试的题好像都不一样。。有偏重基础的,有偏重高新的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2