常量非在编译期间可以确定的值

Posted sico

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常量非在编译期间可以确定的值相关的知识,希望对你有一定的参考价值。

package com.atzhangwl.jvm.classloader;

import java.util.UUID;

/**
* @ClassName Run_03
* @Description
* @Author zhangwl
* @Date 2020/1/4 16:36
* @Version 1.0
**/
public class Run_03 {

public static void main(String[] args) {
System.out.println(MyParent3.parentStr);
}
}


class MyParent3 {

/**
*当一个常量并非编译期间可以确定的值时,那么该常量值就不会被放在调用类的常量池中,
*在程序运行时,会导致主动使用这个常量所在的类,从而导致这个类被初始化
*/
public static final String parentStr = UUID.randomUUID().toString();
// public static final String parentStr = "parentStr";

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

以上是关于常量非在编译期间可以确定的值的主要内容,如果未能解决你的问题,请参考以下文章

第七章 常量和字段

java 编译期常量

编译期间是不是可以生成常量值?

4. Go常量

C++中强行修改const常量的问题

量的内存单元是编译器在编译时候分配的