Java中的static final与final,空缺final的相关知识
Java中的static final与final,空白final的相关知识空白final:这个空白fianl指的是在定义域的时候可以不用
Java中的static final与final,空白final的相关知识
空白final:
这个空白fianl指的是在定义域的时候可以不用指定它的初始值,但是在实例在域所在的类的时候必须进行final变量的初始化.
?
static final 与final的区别:
Java代码??

- import?java.util.Random;??
- ??
- //这个例子想说明一下static?final?与?final的区别??
- public?class?StaticAndFinalTest?{??
- ??????
- ????private?static?Random?rand?=?new?Random(47);?//47作为随机种子,为的就是产生随机数。??
- ??????
- ????private?final?int?a?=?rand.nextInt(20);??
- ??????
- ????private?static?final?int?B?=?rand.nextInt(20);??
- ??
- ????public?static?void?main(String[]?args)?{??
- ????????StaticAndFinalTest?sf?=?new?StaticAndFinalTest();??
- ????????System.out.println("sf?:?"?+?"a="?+?sf.a);??
- ????????System.out.println("sf?:?"?+?"B="?+?sf.B);??
- ????????System.out.println("------------------------------");??
- ????????StaticAndFinalTest?sf1?=?new?StaticAndFinalTest();??
- ????????System.out.println("sf1?:?"?+?"a="?+?sf1.a);??
- ????????System.out.println("sf1?:?"?+?"B="?+?sf1.B);??
- ????}??
- ??
- } ?
代码是从http://advance0683.iteye.com/blog/1107732上拷贝的.
运行结果:
Java代码??

- sf?:?a=15??
- sf?:?B=18??
- --------------??
- sf1?:?a=13??
- sf1?:?B=18??
?可以看到,在sf和sf1对象中,a的值不是唯一的,但B的值是不会通过创建sf1对象而改变。这是因为它是static,在装载时已被初始化,而不是每次创建新对象时都初始化。
<!--EndFragment--><!--EndFragment-->