Java入门之了解JVM(20)
【验证】:对二进制字节码流按规范进行校验(魔术、版本号等等),看是否符合要求;对代码进行审查,看是否符合安全规范
【准备】:给类变量在方法区中分配内存空间并进行初始化值,注意类变量初始化分为以下两种情况:
普通类变量(static修饰):初始化为类型的默认值,如下:
如:public static int a = 100; 在准备阶段初始化为a = 0;而不是100;初始化阶段才赋值为100
类的常量(static final 修饰):对于常量而然,在编译java时就已经为其生成了ConstantValue;那么在准备阶段,初始化值时就会直接根据ConstantValue来初始化;即public static final a = 100;在准备阶段就会直接初始化为100;【解析】:jvm将常量池(Constant pool)中的符号引用转为内存的直接引用;如const #2 = Field将会转为 num2 = 内存地址(指针/偏移量)
初始化:初始化阶段是整个类加载过程的最后一个阶段,到了这个阶段,才开始真正执行类中定义的 Java程序代码;初始化阶段主要是对类变量进行赋值,并保证类初始化时先初始化其父类,即先完成父类中的类成员的初始化工作
推荐阅读
- 唐僧|tap评分高达9.1,《黑色沙漠》手游终于要来了,你了解了吗?
- viper|最佳外援是VIPER,新任FMVP坐不住了?本土选手机制了解一下
- lpl|LPL为何处理不了猫咪,自身了解太浅,根本不重视S11!
- 传奇|我们玩传奇3不仅仅是游戏,更是情怀和回忆,这款手游你了解吗?
- t1|vivo T1究竟值不值得购买?看了这些后你可能有更深了解
- 使命召唤18|王者荣耀 想要轻松上分英雄克制关系了解一下 公孙离克制上官婉儿
- 暗黑破坏神2|《暗黑破坏神2》七种职业!那个才是最适合新手的入门职业!
- s6|金铲铲之战:测试服内容抢先看,5分钟带你了解S6赛季的变化
- 电影|“王者宇宙”全面开启,三分钟了解官方后续动作,你想要的全都有
- 米哈游|米游社三周年,米哈游游戏的必备软件,你了解多少?