• 并不是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”这个字符串也不可变)

  • 相关阅读:
    [火柴排队]
    [NOI2001食物链]
    [黑科技]
    [SDOI2009HH的项链]
    [GXOI/GZOI2019旅行者]
    [Nim游戏]
    Log4Net
    C#创建windows服务并定时执行
    MySQL实现类似Oracle的序列
    DevExpress XtraTreeList的复选框 禁用
  • 原文地址:https://www.cnblogs.com/DDiamondd/p/10965708.html
Copyright © 2020-2023  润新知