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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

马上要去面试了,  这2个方面还是一团浆糊, 网上看了很多都不明白!
这个面试老师一般会问这2个知识点哪个方面的内容?
另外为什么要自定义类加载器, 代理的意义!!

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1 淡定。

查看全部评分

2 个回复

正序浏览
我感觉每个老师面试的题好像都不一样。。有偏重基础的,有偏重高新的
回复 使用道具 举报
一、自定义加载器的作用很大,这里列举几个应用场景:
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,很清楚。

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

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