final修饰的变量仅仅只是不可改变嘛???
是不是每次面试被问到final修饰的有什么不同???
final修饰的类不可以被继承、final修饰的变量不可以被改变、final修饰的即表示最终的、、、、、
那常量被声明为final仅仅只是因为不可改变吗???
!#!@!&#%……!@&#!*@!()@()!、、、、然后想半天说不出来个啥了o(* ̄︶ ̄*)o
毕竟这些东西写的时候都是复制粘贴一把刷,别跟我说什么性能、原理、框架底层!老夫写代码就是复制粘贴一把刷,能爬就行!!!
但是每每面试的时候就是最蛋疼的时候了,平时用不到的总是被问的最多的,所以就得不停的学习平时工作用的不多的东西了;
既然要知道有什么不同的话,肯定得从开始一步一步看起,不然你只知道开始和结果,你也不知道为什么会这样对不对,和我们平时改bug一样的步骤;
初始化常量的时候,如果只是 static修饰的话,常量只会赋值一个默认值;
并不会开始就将你写的值赋值给声明的常量;
但是,你如果添加了final修饰的话,初始化常量赋值的时候就是你给的那个值了!
举个例子:
例如:
public static int value = 123;
此时赋给value的值是0,不是123。
静态常量(static final修饰的)则会直接赋值。比如下面这个:
public static final int value = 123;
此时赋给value的值是123。