- 首页 > 人文 > >
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方法创建对象
- 使用(反)序列化机制创建对象
推荐阅读
-
『瑜伽』想要快速get瑜伽手倒立,这6个半倒立的准备动作要常练!
-
暖风吹怀|孩子上幼儿园被欺负怎么办?看完李晟和伊能静的做法,网友直点赞
-
@东方今报|被拆除豪华中学农民工三年工资未结 劳动局:正在结算立刻发
-
-
伊隆·马斯克|世界首富马斯克开始裁员,地主家的余粮也不多了?
-
苹果加3个鸡蛋,上锅一蒸,原来这么好吃,孩子吃一次就爱上
-
中新经纬|健民集团上半年营收下滑超7% 拟新增口服液等7种药剂
-
农村7旬老人保存的“老古董”,如今很值钱,农民们别再当废纸
-
-
翡翠|老缅送来一块200万翡翠原石,颜色有绿有紫!行家为啥无动于衷?
-
央视|提供每周400美元失业补助,特朗普签署行政令
-
球王体育|73胜班底+状元+榜眼!颤抖吧,勇士又要回来了
-
民间1奇药,以“续折接骨”闻名,叫做川断,要是遇见切记别错过
-
肖战|肖战新年收获新身份,成为社交平台兔年好彩官!
-
泡仔|被朋友骂的狗血淋头,再带个插排不就行了?,带着电烤盘出来野餐
-
-
@开黑节预热活动给力,极品回城特效5选1,没嘻哈天王玩家笑了!
-
北京上调养老金标准|北京上调养老金标准,调整后的养老金7月15日发放到位
-
以前的同学/室友/好友在各大社交网站晒幸福时,你啥感觉是不是很讨厌
-
克莱-汤普森|科尔失算了?汤普森恢复神速超预期!5V5训练暴扣宣告满血归来