java final static 和final区别
Posted newlangwen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java final static 和final区别相关的知识,希望对你有一定的参考价值。
static 和非static 之间的差异,只有当值在运行期间初始化的前提下,这种差异才会揭示出来。因为编译期间的值被编译器认为是相
同的。
package thinking; public class FinalData { // Can be compile-time constants final int i1 = 9; static final int I2 = 99; // Typical public constant: public static final int I3 = 39; // Cannot be compile-time constants: final int i4 = (int)(Math.random()*20); static final int i5 = (int)(Math.random()*20); public void print(String id) { System.out.println( id + ": " + "i4 = " + i4 + ", i5 = " + i5); } public static void main(String[] args) { FinalData fd1 = new FinalData(); FinalData fd2 = new FinalData(); fd1.print("fd1"); fd2.print("fd2"); } }
注意对于fd1 和fd2 来说,i4 的值是唯一的,但i5 的值不会由于创建了另一个FinalData 对象而发生改
变。那是因为它的属性是static,而且在载入时初始化,而非每创建一个对象时初始化。
以上是关于java final static 和final区别的主要内容,如果未能解决你的问题,请参考以下文章
Java中final与 static final 修饰的常量的区别
Java_基础java中static与final关键字的区别