1.通常由final声明的值为常量
2.final可以修饰数组
3.一个被定义为final的对象引用只能指向唯一一个对象,不可以再指向其它对象,但是一个对象的值是可以改变的。
4.为了使一个常量真正做到不可改变,需要使用 static final关键字
5.一旦一个变量被声明为static final,那么就会为它在内存中开辟出一个恒定不变的区域。
下面举个例子:
<span style="color:#000000;">package tongji.edu.com;
import java.util.Random;
import java.util.zip.Adler32;
public class Main
{
static Random random = new Random();
final int a1 = random.nextInt(10);
static final int a2 = random.nextInt(10);
public static void main(String[] args) {
Main m = new Main();
System.out.println(m.a1);
System.out.println(m.a2);
Main m1 = new Main(); //再实例化一次
System.out.println(m1.a1);
System.out.println(m1.a2);
}
}</span>
结果为:
<span style="color:#000000;">9
3
0
3</span>
发现声明为static final的a2仍然没有变化,而a1再重新实例化以后由9变
为了0.
所以一般在声明全局变量的时候,使用static final来声明。