- 首页 > 人文 > >
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方法创建对象
- 使用(反)序列化机制创建对象
推荐阅读
-
-
让本人可以|小姐姐半甲小衫搭配牛仔,别致还自带高级气场
-
-
老年|世界杯期间常熬夜,男生们易“爆”肝,看球时候喝点它降降肝火
-
中华网娱乐|定义电影级“4A新港剧”,黄宗泽吴卓羲《战毒》开播
-
央视网累计确诊38324例,?墨西哥新增新冠肺炎确诊病例1997例
-
-
半导体|A股寻找真成长牛股:它是芯片和消费电子龙头股,中国几大手机品牌都是它的客户!
-
-
-
汽车预言家|除了3.0TV6 你还能买到哪些增项?|汽车预言家,一款50万元豪华SUV
-
小纪谈育儿|孕期要做到这几点,别疏忽,为了让胎儿更好发育
-
:存钱与不存钱,有何不同?专家:10年后,这4个“差距”影响一生
-
安卓|安卓一哥扛不住了:曝三星今年减产3000万台手机
-
-
情感|妻子每次出门前,总要先洗澡,男人很痛苦:自己选择自己受
-
殴打男孩▲48岁男子电梯内打12岁男孩 被警方采取刑事强制措施
-
市值|历史性时刻!一家新能源公司市值超越石油巨头埃克森美孚
-
售后:每日一淘怎么开店入驻,每日一淘保证金多,每日一淘扣点多少,
-
股民|极速冷却!市场降温直追冰点,股民冷静,疯牛不在?