Java入门之了解JVM(21)
注意不要混淆【初始化】和【实例化】,初始化是对类成员进行初始化,而实例化是在初始化的基础上建立的,实例化会生成对象并完成实例变量的赋值,即会在堆内存中开辟空间
注意以下几种情况不会执行类初始化:
通过子类引用父类的静态字段,只会触发父类的初始化,而不会触发子类的初始化。通过类名获取Class对象,不会触发类的初始化。通过Class.forName加载指定类时,如果指定参数initialize为false时,也不会触发类初始化,其实这个参数是告诉虚拟机,是否要对类进行初始化。通过ClassLoader默认的loadClass方法,也不会触发初始化动作。关于类加载器
在《深入理解Java虚拟机》中有句这样的话,”比较两个类是否’相等‘,只有在这两个类是有同一个类加载器加载的前提下才有意义,否则,即使这两个类来源与同一个Class文件,被同一个JVM加载,只要加载它们的类加载器不同,那么这两个类就必定不相等“,即就算是同一个class文件,但由不同的类加载器去加载的话就会生成两个不同的class对象,这点要注意,这是理解双亲委派模型的大前提以下为类加载器的双亲委派模型(图片源自网络)
推荐阅读
- 唐僧|tap评分高达9.1,《黑色沙漠》手游终于要来了,你了解了吗?
- viper|最佳外援是VIPER,新任FMVP坐不住了?本土选手机制了解一下
- lpl|LPL为何处理不了猫咪,自身了解太浅,根本不重视S11!
- 传奇|我们玩传奇3不仅仅是游戏,更是情怀和回忆,这款手游你了解吗?
- t1|vivo T1究竟值不值得购买?看了这些后你可能有更深了解
- 使命召唤18|王者荣耀 想要轻松上分英雄克制关系了解一下 公孙离克制上官婉儿
- 暗黑破坏神2|《暗黑破坏神2》七种职业!那个才是最适合新手的入门职业!
- s6|金铲铲之战:测试服内容抢先看,5分钟带你了解S6赛季的变化
- 电影|“王者宇宙”全面开启,三分钟了解官方后续动作,你想要的全都有
- 米哈游|米游社三周年,米哈游游戏的必备软件,你了解多少?