Java关键字static、final使用小结
static
final
其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值。
对基本类型来说是其值不可变,而
对于对象变量来说其引用不可再变。
在java中,普通变量系统是自动初始化的,数值变量自动初始化为0,其余类型变量自动初始化为空。但是final类型的变量必须显示初始化,且初始化的方法必须是在申明时或者在构造方法中直接赋值,而不能通过调用函数赋值。
public
class TestStaticFinal {
private
static
final String strStaticFinalVar =
"aaa";
private
static String strStaticVar =
null;
private
final String strFinalVar =
null;
private
static
final
int intStaticFinalVar = 0;
private
static
final Integer integerStaticFinalVar =
new Integer(8);
private
static
final ArrayList<String> alStaticFinalVar =
new ArrayList<String>();
private
void test() {
System.out.println(
"-------------值处理前----------");
System.out.println(
"strStaticFinalVar=" + strStaticFinalVar + "");
System.out.println(
"strStaticVar=" + strStaticVar + "");
System.out.println(
"strFinalVar=" + strFinalVar + "");
System.out.println(
"intStaticFinalVar=" + intStaticFinalVar + "");
System.out.println(
"integerStaticFinalVar=" + integerStaticFinalVar + "");
System.out.println(
"alStaticFinalVar=" + alStaticFinalVar + "");
//strStaticFinalVar="哈哈哈哈";//错误,final表示终态,不可以改变变量本身.
strStaticVar =
"哈哈哈哈";
//正确,static表示类变量,值可以改变.
//strFinalVar="呵呵呵呵"; //错误, final表示终态,在定义的时候就要初值(哪怕给个null),一旦给定后就不可再更改。
//intStaticFinalVar=2; //错误, final表示终态,在定义的时候就要初值(哪怕给个null),一旦给定后就不可再更改。
//integerStaticFinalVar=new Integer(8); //错误, final表示终态,在定义的时候就要初值(哪怕给个null),一旦给定后就不可再更改。
alStaticFinalVar.add(
"aaa");
//正确,容器变量本身没有变化,但存放内容发生了变化。这个规则是非常常用的,有很多用途。
alStaticFinalVar.add(
"bbb");
//正确,容器变量本身没有变化,但存放内容发生了变化。这个规则是非常常用的,有很多用途。
System.out.println(
"-------------值处理后----------");
System.out.println(
"strStaticFinalVar=" + strStaticFinalVar + "");
System.out.println(
"strStaticVar=" + strStaticVar + "");
System.out.println(
"strFinalVar=" + strFinalVar + "");
System.out.println(
"intStaticFinalVar=" + intStaticFinalVar + "");
System.out.println(
"integerStaticFinalVar=" + integerStaticFinalVar + "");
System.out.println(
"alStaticFinalVar=" + alStaticFinalVar + "");
}
public
static
void main(String args[]) {
new TestStaticFinal().test();
}
}
Java关键字final、static使用总结。
转载于:https://blog.51cto.com/android/384614