并不是static final 修饰的变量都是编译期常量
Posted ddiamondd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了并不是static final 修饰的变量都是编译期常量相关的知识,希望对你有一定的参考价值。
见代码
public class Test public static void main(String[] args) // 情况一 基本数据类型 //System.out.println(Outer.Inner.n); // 输出结果 : 10 //情况二 //Outer outer = Outer.Inner.outer; // 输出结果 : 静态内部类 //情况三 System.out.println(Outer.Inner.str); // 输出结果: 静态内部类 abc //情况四 System.out.println(Outer.Inner.str01); // 输出结果: abc class Outer static class Inner public static final String str = new String("abc"); public static final String str01 = "abc"; public static final Outer outer = new Outer(); public static final int n = 10; static System.out.println("静态内部类");
String 是一个比较特殊的类(str01: static final 修饰的变量不可变 , “abc”这个字符串也不可变)
以上是关于并不是static final 修饰的变量都是编译期常量的主要内容,如果未能解决你的问题,请参考以下文章