Java 中的 final 数组2025 年 5 月 13 日 | 阅读 6 分钟 在 Java 中,final 是一个关键字。它是一个非访问修饰符。它意味着它限制了变量、方法和类的修改。它确保一旦一个实体被声明为 final,它只能被赋值和定义一次。 另一方面,一个引用变量一旦被声明为 final,就永远不能被重新赋值,因为它引用另一个对象,这使得 final 的使用变得无用。 这里需要注意的是,我们不能再引用另一个对象。但就 对象 而言,数据是可以更改的。这意味着我们可以更改对象的状态,而不是引用。 在 Java 中,数组 被视为对象,而在 Java 中,对象变量始终是引用。这里,final 数组的概念就发挥作用了。 在本节中,我们将通过一个示例和相应的 Java 程序来讨论 Java 中的 final 数组。 Final 数组在 Java 中,当我们声明一个数组为 final 时,意味着初始化后不能更改对该数组的引用。简单地说,final 适用于引用,而不适用于数组的内容。 让我们通过一个例子来理解它。 Final 数组示例考虑以下代码片段。 关键点不可变引用: 一旦 final 数组被赋值,我们就不能将数组变量指向另一个数组或 null。 可变内容: 我们可以更新、添加或删除数组中的元素(取决于数组的类型)。 这种行为通常用于确保引用的完整性,同时允许对其所持有的数据进行修改。 Final 数组的实现输出 7 2 3 10 5 6 在上面的示例中,我们观察到数组被声明为 final,但数组的元素被更改了。当我们删除第 10 行的注释时,它会产生编译错误。 输出 8, 11, 14, 17, 19, 21 让我们讨论一些与 final 数组相关的其他 Java 程序。 程序 1:修改 Final 数组中的元素输出 [Apple, Pineapple, Blueberry, Banana, Cherry] 解释该程序演示了在 Java 中将数组声明为 final 会使其引用不可变,这意味着数组不能被重新赋值,但单个元素仍然可以被修改。该程序初始化了一个 final String 数组,修改了一些元素,并打印了数组的更新值。 程序 2:将 Final 数组传递给方法我们可以将一个 final 数组传递给一个方法。它也会修改数组的元素。 输出 [10, 20, 100, 200, 300, 60, 70] 解释 该程序在 Java 中演示了 final 数组作为方法参数传递时的情况,其中引用本身不能被重新赋值,但单个元素可以被修改。modifyArray() 方法会更新数组的第三、第四和第五个元素(根据索引值),并且此更改在方法外部仍然存在。 程序 3:多维 Final 数组类似地,我们可以将多维数组声明为 final。 输出 [[56, 2, 3], [4, 5, 19], [7, 45, 29]] 解释该程序演示了 Java 中的 final 二维数组,其中可以修改单个元素,但不允许将引用重新赋值给新数组。该程序初始化了一个 final 二维数组 matrix,修改了其中的一些元素,然后打印了更新后的矩阵。尝试将一个新数组赋值给 matrix 会导致编译错误。 程序 4:对象 Final 数组当使用对象数组时,我们可以修改对象的属性,但不能修改引用。 输出 10, 2 3, 40 解释该程序演示了对象 Final 数组。它确保引用不能被重新赋值,但允许修改其元素。 程序 6:构造函数中的 Final 数组输出 10 99 30 解释该程序演示了构造函数中的 final 数组,该数组确保引用不能被重新赋值,但允许修改其元素。DataHolder 类有一个通过构造函数初始化的 final 数组 data。 modifyData() 方法会更改给定索引处的值,表明元素可以被更新。在 main() 中,使用一个整数数组创建一个对象,修改第二个元素,并显示更新后的数组。 下一个主题Java 二叉树 |
在 Java 中,可以使用数组、集合、包装类或自定义类返回多个值。使用自定义类可以提高可读性、类型安全性和结构化数据处理。使用 Pair(两个值)返回不同类型的多个值 代码使用自定义类 Result 来存储和...
7 分钟阅读
公约数序列是数论中一个有趣的主题,它涉及迭代地对一个数的真因子(不包括数本身)求和。序列一直持续,直到它以零终止、进入一个循环或(在罕见的理论情况下)变得无界。研究...
5 分钟阅读
Java 中的浅拷贝与深拷贝 在本节中,我们将讨论 Java 中浅拷贝和深拷贝之间的主要区别。让我们来理解一下浅拷贝和深拷贝。浅拷贝 当我们复制某些实体以创建两个或多个实体时...
阅读 6 分钟
detectedCharset() 方法是 java.nio.charset.CharsetDecoder 类的一个内置方法,它检索此解码器已检测到的字符集。该方法的默认实现始终抛出 UnsupportedOperationException。自动检测解码器应重写此方法,一旦输入字符集已...
阅读 3 分钟
Java 程序可以使用简单的文本编辑器编写。但是,使用 Java 集成开发环境 (IDE) 可以帮助开发人员更有效地开发软件。IDE 提供了许多功能,如自动完成、调试器选项等。在本节中,我们将讨论一些广泛使用的 Java...
阅读 3 分钟
? 在前面的章节中,我们学习了 Apache POI 库。它是一个处理 Microsoft Office 文档的 API。使用 POI 库,我们可以轻松创建 DOC、DOCX、XLS、XLSX、PPT 和 PPTX 文件。如果我们想创建 PDF...
7 分钟阅读
编程中处理链表时的一个常见问题是确定两个链表是否相交。如果相交,则找到链表相交的节点。这种情况发生在两个链表在末尾共享一组公共节点,形成一个 Y 形结构时...。
阅读 6 分钟
比较两个或多个 Excel 工作簿是常见的需求,尤其是在自动化测试场景中。在本节中,我们将学习如何比较两个 Excel 工作簿,或者验证两个工作簿是否具有相同的数据集。比较 Excel 文件我们不应该从比较 Excel 工作表开始...
阅读 6 分钟
安全性如今已成为一个重要方面。Java 编程通过支持不同的加密和哈希算法,为数据传输以及多个节点之间的通信提供安全性。在本节中,我们将讨论 AES 256 加密算法并在 Java 中实现逻辑...
阅读 6 分钟
编程用于解决现实生活中的问题,这些问题可能包括实现不同的数学公式。而这些公式又被用于各种数学常数和函数。什么是 Pi?Pi 是一个常数值,用于几何学的各种公式,如计算周长、面积、体积等。它是...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India