我有一个相对简单的问题,关于 final
的功能在 java 。
当我编译这段代码时:
import java.util.*;
import java.lang.*;
import java.io.*;
class Arrays
{
public static void main (String[] args) throws java.lang.Exception
{
final int[] myArray = { 1,2 };
myArray[1] = 3;
System.out.println (myArray[1]);
}
}
数字“3”被打印。然而,我的印象是final
意味着该数组 (myArray) 中保存的值不能再更改并且是恒定的。
这里还有另一段代码:
final int [] a1 = {1, 2};
int [] b1 = {3, 4};
a1 = b1; System.out.println (a1[1]);
我相信系统应该打印“2”,因为 a1
已完成并且数组中的值是常量。不过 friend 认为应该是“4”。请帮我澄清我对final
的理解。
最佳答案
int[]
是一种对象类型(不是基元,也不是 int
)。最终引用意味着您在引用 Object
实例时无法重新分配引用。
final int [] a1 = {1, 2};
a1 = {3,4}; // <-- illegal, a1 is final.
事实上,Java 在这两种情况下都会生成值 final
(对象
的值是其引用)。
关于java - Java 中的最终 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28122572/