由于自己以前傻傻的分不清常量和变量的区别,闹过很多尴尬的事,所以今天来总结一下。
常量顾名思义就是在整个运行过程中值不变。变量是可以在运行过程中再赋值更改的。
常量定义: 在java中用final定义常量,而且常量名习惯大写(所有字母大写) 例如:public static final String PREFIX = "ROBOT";
当我们在运行程序时用到公共不变的值时适合设定常量。
变量定义:我们在写程序时,经常说声明一个变量,这个变量可以赋初始值,也可以不赋。 例如: private String a , int b =0;
总结:
简单地说,用final修饰过的就叫常量,常量一旦定义了就不允许被修改。往大的说,定义常量,是不想让某些固定的属性或方法被调用后改变了值,或者被继承后重写。
往底层说,常量存放在常量池里,在类加载之前就已经被加载,且不会改变。变量刚好相反,允许被改变,调用时要赋值或初始化,存在堆或栈中。