- 首页 > 人文 > >
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方法创建对象
- 使用(反)序列化机制创建对象
推荐阅读
-
大叔下厨房|广东人爱吃鱼,这道双酥带鱼煲仔,酥脆味美,香气扑鼻,超级好吃,原创
-
新车 | 颜值进化配置升级,新款三菱奕歌日本上市,国内还远吗
-
-
罗天宇|TVB“女神收割机”新剧挑战流氓律师,专为弱势发声,与同性共浴
-
幽默搞笑段子集锦|单身,长得非常漂亮,就是没有男朋友,幽默笑话:堂妹已经28了
-
-
-
凇清幕雨@踩20cm“细针”腿功了的, 看到生图, 我信你40了,陈乔恩走红毯,
-
-
美国大选|美国大选最后关头,结果还没出来,输家却已经一目了然
-
私生饭|哈哈哈有些东西还真TM全国统一,男女事罢后第一句话会说什么?
-
「水果」当年为了变瘦不吃饭,3年只吃水果充饥的200斤女孩,如今变得怎样了?
-
互联网微信公众号“问答”具体怎么玩?支持随图文消息一并转发
-
-
3C毒物 14部手机电池续航测试:华为P40Pro排名第十小米倒数第三
-
图赏|新一代锐龙7 5700U加持!荣耀MagicBook 14锐龙版图赏
-
蚕丝床单被罩能机洗吗 蚕丝床单被罩可不可以放洗衣机洗
-
-
-
[长安汽车]这款国六suv,比星越霸气,2.0t配8at,油耗8.2l