JVM
H_A_B_O_W
这个作者很懒,什么都没留下…
展开
-
java的初始化阶段-被动引用(三种不会被初始化的情况)
java的初始化阶段-被动引用(三种不会被初始化的情况)1、通过子类引用肺类的静态字段,不会导致子类初始化public class SuperClass {public static int a=111111;static {System.out.println(“SuperClass init”);}}public class SubClass extends SuperClas...原创 2019-06-27 16:29:27 · 417 阅读 · 0 评论 -
java类的生命周期简单讲解,此文不包含使用和卸载讲解(加载->连接(验证->准备->解析)->初始化->使用->卸载)
加载->连接(验证->准备->解析)->使用->卸载一、加载1、通过类的完全限定名获得类的二进制字节码字节流2、将字节流的字节码静态存储结构转化为方法区的运行时数据结构3、在方法区生成代表这个类的java.lang.class对象,作为方法区这个类的数据访问入口二、连接1、验证:a、文件格式验证b、元数据验证c、字节码验证d、符号引用验证2、准备...原创 2019-07-03 09:42:06 · 152 阅读 · 0 评论 -
字节码文件中字段Field的两种access_flags
字节码文件中字段Field的两种access_flags一、ACC_VOLATITLE1、立即将该变量值写入主存,用于多线程同步数据,使其它线程可见变量值的修改值2、禁止指令重排序优化。有volatile修饰的变量,赋值后多执行了一个“load addl $0x0, (%esp)”操作,这个操作相当于一个内存屏障(指令重排序时不能把后面的指令重排序到内存屏障之前的位置),只有一个CPU访问内...原创 2019-07-03 21:27:34 · 437 阅读 · 0 评论