开发者社区> 问答> 正文

java定义的全局变量(引用类型),加不加final有区别吗?什么区别?

public static final U=new U();

public static U=new U(); 没什么区别吧

如果在不同的地方想获得spring同一个容器用定义全局变量的方式可以吗?

展开
收起
a123456678 2016-03-18 16:05:26 4588 0
2 条回答
写回答
取消 提交回答
  • 加final表示这个变更只能进行一次赋值操作,不可以改变它的值。更重要的是,final会告诉编译器,这个数据是不会修改的,那么编译器就可能会在编译时期就对该数据进行替换甚至执行计算,这样可以对我们的程序起到一点优化。

    如果不加final,那么这个变量可以随时修改他的值,区别主要是可不可以修改他的值。

    用定义全局变量的方式定义一个spring容器,然后在其它地方调用是可以的。

    2019-07-17 19:06:56
    赞同 展开评论 打赏
  • public class UserConstant {
        public static final User FU = new User();
        public static User SU = new User();
     
        public static void main(String[] args) {
            UserConstant.FU = new User(); //此处报编译错误
            UserConstant.SU = new User(); //此处不报错
            //
        }
    }
    2019-07-17 19:06:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载