Final is a keyword in java, which means "constant". Final data in Java has two specific meanings: 1. For basic data types, it means a compile-time constant that never changes; 2. For ordinary objects, it means that the reference is constant and cannot point to another object, but the object itself is Can be modified.
#Final in Java is a keyword whose meaning is constant.
Final data has two specific meanings:
1. For basic data types, it represents a compile-time constant that will never change.
2. For ordinary objects, it means that the reference is constant and cannot point to another object, but the object itself can be modified.
Therefore, there are several points to note:
1. The static final attribute in the class means that it occupies a storage space that cannot be changed and must be initialized in the declaration. , cannot be initialized in construction.
2. The final attribute in the class, because it is not a static value, can be declared in each constructor.
Note that properties declared final can only be initialized once! Non-static is initialized at most once per instance. Static can only be initialized once during class creation!
3. For final-modified objects (such as arrays), the array can be modified after declaration, but it cannot be redirected to a new array.
public class Test_FinalAndStatic { static final int i=1; final int j; public Test_FinalAndStatic(int j){ //i、j只能被初始化一次 所以j在声明中不能初始化 this.j=j; //同时 i只能在声明中初始化,不能在构造中初始化 } final int[] is=new int[]{1,2,3}; //被final修饰的引用一旦被初始化指向一个对象,就不能再改变,但该对象自身可以改变 //is=new int[]{3,2,1}; error public void dois(){ //is对象自身可以改变 is[0]=4; System.out.print("is="); for(int w:is){ System.out.println(w+":"); } } public void showi(){ System.out.println("i="+i); // i只能占据一段不能改变的存储空间 // i++; error // i=5; error } public void showj(){ System.out.println("j="+j); // j++; error // j=2; error } @Override public String toString(){ dois();showi();showj(); return null; } public static void main(String[]args){ Test_FinalAndStatic t1=new Test_FinalAndStatic(100); t1.toString(); Test_FinalAndStatic t2=new Test_FinalAndStatic(200); t2.toString(); } }
Result:
is=4: 2: 3: i=1 j=100 is=4: 2: 3: i=1 j=200
final parameters:
If the parameters in the message are modified by final, it means that in the message The object pointed to by the parameter reference cannot be changed.
Final method:
1. Lock the method to prevent any inherited class from changing its meaning and ensure that it is not overwritten.
2. Agree with the compiler to change all calls to this method to inline calls to improve efficiency. However, it is no longer recommended.
3. All private methods are implicitly designated as final. Since the private method cannot be obtained, it cannot be rewritten.
Final class:
cannot be inherited, cannot be changed, and cannot have subclasses.
The above is the detailed content of What does final mean in java?. For more information, please follow other related articles on the PHP Chinese website!