- 首页 > 人文 > >
Java:Java JVM常见面试题及答案:类加载器篇( 二 )
共享功能:可以避免重复加载 , 当父亲已经加载了该类的时候 , 子类不需要再次加载 , 一些Framework层级的类一旦被顶层的ClassLoader加载过就缓存在内存里面 , 以后任何地方用到都不需要重新加载 。
隔离功能:java核心类库的纯净和安全 , 防止恶意加载 。
如何打破双亲委派模型?
- 双亲委派模型的逻辑都在loadClass()中 , 重写loaderClass()、findClass()
- 系统自带的三个类加载器都加载特定目录下的类 , 如果我们自己的类加载器放在一个特殊的目录 , 那么系统的加载器就无法加载 , 也就是最终还是由我们自己的加载器加载
自定义ClassLoader
- loadClass(String nameboolean resolve):根据指定的二进制名称加载类
- findClass(String name): 根据二进制名称来查找类
- 直接使用或继承已有的ClassLoader实现:java.net.URLClassLoader、java.security.SecureClassLoader、 java.rmi.server.RMIClassLoader
- 在调用loadClass() , 会先根据委派模型在父加载器中加载 , 如果加载失败 , 则会调用自己的findClass方法来完成加载
5、引起类加载操作的五个行为
- 遇到new、getstatic、putstatic或invokestatic这四条字节码指令
- 反射调用的时候 , 如果类没有进行过初始化 , 则需要先触发其初始化
- 子类初始化的时候 , 如果其父类还没初始化 , 则需先触发其父类的初始化
- 虚拟机执行主类的时候(有 main(string[
args))
- JDK1.7 动态语言支持
6、Java对象创建时机
- 使用new关键字创建对象
- 使用Class类的newInstance方法(反射机制)
- 使用Constructor类的newInstance方法(反射机制)
- 使用Clone方法创建对象
- 使用(反)序列化机制创建对象
推荐阅读
-
筝弦上的赵姐|俺爸不小心惹到家里的女皇帝了,开心笑话:刚才吃饭的时候呢
-
蜘蛛侠|不会吧不会吧!《复仇者联盟》的蜘蛛侠也要独占PS4?
-
-
[大米评测 TB]AMOLED屏幕+骁龙765G,又一款144Hz高刷入门机:努比亚Play配置公布:144Hz
-
-
炖肉嫌麻烦?不如切根萝卜蒸一盘,省事营养,滋补解馋还不会长胖
-
-
Smart第9频道真无线耳机新玩法,手环耳机合二为一
-
-
-
养生董医师|推荐你常吃3种食物,美容养颜、滋补身体!,人到中年想延长寿命
-
认真的!五年高考三年模拟推出雪糕,网友:这雪糕吃了可以涨知识吗?
-
陆川|央视主持人桑晨:21岁进央视,工作28年零绯闻,丈夫身份至今成谜
-
「军事哥谈」毫不掩饰对规模的野心,“碧桂园的信徒”领地集团赴港上市
-
育儿分享会|为什么还老让抱抱?心理医生给出三个理由,父母要懂,娃都会走了
-
-
山西:对公共安全负有重大责任的岗位应建立吸毒筛查制度
-
女性|女性想要身体好,建议吃的食物,排毒养颜,降压降脂,增强体质
-
ZAKER汽车|豪华又大气,七座布局,如何,Jeep全新一代大瓦格尼惊艳亮相
-
刘亦菲|《花木兰》放弃上映!戏院老板怒砸刘亦菲海报发泄,网友:理解