- 首页 > 人文 > >
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方法创建对象
- 使用(反)序列化机制创建对象
推荐阅读
-
黎贝卡的异想世界|谁说鼻子塌就不好看了!她们刷新了我对鼻子美的认知
-
[境外输入]甘肃新增1例境外输入无症状感染者,第四次核酸检测确诊
-
[胖次资讯]被吐槽不够专业,张艺兴发火却被夸,原因太现实,黄子韬《创3》发火上热搜
-
-
-
铁血观世界击毙12名敌军,对美国“盟友”开火?土耳其再次掀起中东战事
-
-
肉小瓜游戏解说公孙离限定皮肤首次曝光?时差恋人海报公布,梦奇重做变丑
-
-
-
「家猫」我的猫怎么又又又又吐了?猫猫肠胃问题简直令人头秃!
-
淮生借古喻今|戴安娜是人们心目中的完美女神,她身上也有任性,令人厌恶的一面
-
-
Aggro电竞|只要打好就行了,自信起来了?Doinb表示:现在已经不管谁赢谁输
-
快讯|涅槃重生,肖战最新排名说明一切,“战神”凯旋而归
-
『享趣看娱乐』比亚迪秦和启辰D60如何选择?车主:放一起比一比,存款9万
-
成铭聊时尚|蔡少芬保养得很好!穿黑色连衣裙优雅端庄,三孩妈妈身材依旧苗条
-
武汉筹集36亿发展住房租赁市场,增加租赁房源有效供给
-
桃花肌颜 兰肤-妍护肤分享导致痘印出现的原因有哪些?
-
永祥|查清了!乐山公布刺激性气雾调查结果,当事企业再度回应