java - Java中final变量的奇怪行为

标签 java final

在我的java程序中,我使用了一个final变量。我们知道任何final变量的值都是固定的并且不能改变。那么为什么这个特定的程序运行良好?谁能解释一下。

public static void main(String args[])
{
    int[] integerArray = { 1, 2, 3, 4, 5 };

    for (final int j : integerArray) {
    System.out.println(j);
    }
}

最佳答案

它是循环体内的最终 - 但您实际上是为循环的每次迭代声明了不同的变量。

就好像你写了这样:

for (int i = 0; i < integerArray.length; i++) {
    final int j = integerArray[i];
    System.out.println(j);
}

同样,我们在循环的每次迭代中都有一个名为 j 的"new"局部变量...但每个变量都不会更改其值。

关于java - Java中final变量的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16481245/

相关文章:

java - 关于Java中的局部final变量

java - MongoLab 身份验证失败

java - 我怎样才能得到一个方阵并将其放入另一个矩阵?

java - 为什么反射无法更新静态字段?

Java 最终匿名类与垃圾收集器

java - 将类设置为 final 和将类构造函数设置为私有(private)有什么区别

java - 在内部类中访问局部变量(java)

java - JDesktopPane 放置

java - 如何在 Java 中压缩对象流?

Java 执行时间受字符串格式影响吗?