- 首页 > 人文 > >
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方法创建对象
- 使用(反)序列化机制创建对象
推荐阅读
-
四季|海通策略荀玉根:坚持认为四季度市场的行情较好 中短期大金融地产更优
-
-
经济日报|宁德时代携手河南跃薪 打造电动智慧无人矿山新生态
-
-
累计|约翰斯·霍普金斯大学:全球累计新冠确诊病例超过3500万例
-
佳禾国际家政|建议少奶的宝妈收藏,适合坐月子吃的16种食物
-
科技美学:22款新品一同亮相,小米10周年米粉节开幕
-
一点美丽|Dunk 都炒到10w 了?,TS、周董钟爱的“牛仔系列”!这年头牛仔
-
热映电影票房榜,《八角笼中》破10亿,不敌《长安三万里》排第二
-
央视财经|涨涨涨!这里的房价创纪录!两年涨了近三成!咋回事?
-
【小何美食屋】鲜甜脆嫩,美味可口,让味蕾来一次全新的体验,孩子们很抢手的菜
-
波丰娱乐|“我们考虑了每平方毫米”设计出的越野车原来外观这么简单
-
小四的娱乐|林志玲康复后首现身!低扎马尾辫穿灰色连衣裙,46岁状态优雅美
-
制造业|行业唯一,欧派家居连续四年入选中国制造业民营企业500强
-
天冷吃面正合适,教你香气四溢的麻油鸡汤面,营养美味很过瘾
-
-
-
郑州的袁希福医术是真是假,网上水军太多,我想寻一答案?
-
-