码迷,mamicode.com
首页 > 其他好文 > 详细

jvm_final_static_variable

时间:2020-01-04 12:35:14      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:没有   表示   方法   parent   const   zhang   stat   ati   变量   

package com.atzhangwl.jvm.classloader;

/**
* @ClassName Run_02
* @Description final修饰的变量会被存入调用这个常量的方法的常量池中,本质上调用类并没有直接引用到定义常量的类,因此并不会触发
* 定义常量类的初始化 注意:这里是将常量存放到了Run_02的main方法的常量池中,
* 之后Run_02与MyParent2没有任何关系,甚至我们可以将MyParent2.class文件删除
* <p>
* <p>
* 助记符:
* ldc : 表示将int、float或Sting类型的常量值从常量池中推送至栈顶
* bipush: 表示将单字节(-128 - 127)的常量值推送至栈顶
* sipush: 表示将一个短整形(-32768 - 32767)的常量值推送至栈顶
* iconst_1: 表示将int类型的1推送至栈顶 注意:iconst_1 到 iconst_5 为jvm虚拟机提供的特殊助记符
* @Author zhangwl
* @Date 2020/1/2 22:25
* @Version 1.0
**/
@SuppressWarnings("all")
public class Run_02 {

public static void main(String[] args) {
//运行结果:this static block is from parent
//parentStr_01
// System.out.println(MyParent2.parentStr_01);
// 运行结果:parentStr_02
// System.out.println(MyParent2.parentStr_02);
//
// System.out.println(MyParent2.short_val);
//
// System.out.println(MyParent2.int_val);
//
System.out.println(MyParent2.int_special_val);
}
}

@SuppressWarnings("all")
class MyParent2 {
public static String parentStr_01 = "parentStr_01";
//final修饰的变量会被存入调用这个常量的方法的常量池中
public static final String parentStr_02 = "parentStr_02";
public static final short short_val = 127;
public static final int int_val = 128;
public static final int int_special_val = 6;

static {
System.out.println("this static block is from parent");
}
}

jvm_final_static_variable

标签:没有   表示   方法   parent   const   zhang   stat   ati   变量   

原文地址:https://www.cnblogs.com/sico/p/12148211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!