Java中Final修饰对象
Final修饰对象
众所周知,final是java的关键字,修饰符,用于声明属性(属性不可变)、方法(方法不可重写)和类(类不可继承),那么final可以修饰对象么,修饰对象又是代表着什么?
先看一个例子
>>>代码示例
public class FinalDemo {static final Integer[] arr = new Integer[]{1, 2, 3};public static void main(String[] args) {System.out.println("arr原来的数组内容:"+Arrays.toString(arr));System.out.println("arr原来的内存地址:" + arr.hashCode());arr[0]=4;arr[1]=5;arr[2]=6;System.out.println("修改后arr的数组内容:"+Arrays.toString(arr));System.out.println("修改后arr的内存地址:" + arr.hashCode());}
}
>>>运行结果
arr原来的数组内容:[1, 2, 3]
arr原来的内存地址:460141958
修改后arr的数组内容:[4, 5, 6]
修改后arr的内存地址:460141958
由此不难看出,我们可以修改final修饰了的对象内容,但是引用地址未发生变化。
那么我们重新给arr对象赋值,是否可以?
>>>代码示例
public class FinalDemo {static final Integer[] arr = new Integer[]{1, 2, 3};public static void main(String[] args) {System.out.println("arr原来的数组内容:"+Arrays.toString(arr));System.out.println("arr原来的内存地址:" + arr.hashCode());arr[0]=4;arr[1]=5;arr[2]=6;arr= new Integer[]{7, 8, 9};//重新赋值System.out.println("修改后arr的数组内容:"+Arrays.toString(arr));System.out.println("修改后arr的内存地址:" + arr.hashCode());}
}
>>>运行结果——编译报错
Error:(15, 9) java: 无法为最终变量arr分配值
总结:final修饰的对象,内容可变,引用不可变。
Java中Final修饰对象相关推荐
- JAVA中final修饰参数
1. final 修饰在变量上,说明这个变量的值不能修改 final 修饰在方法上,说明这个方法在继承后不能覆盖. final 修饰在类上,说明这个类为终态,不能被继承了. 2.final类型修饰的参 ...
- java 中final修饰的变量_java中final修饰符的使用方法
本文为大家分享了java中final修饰符的使用,供大家参考,具体内容如下 1.final修饰符的用法: final可以修饰变量,被final修饰的变量被赋初始值之后,不能对它重新赋值. final可 ...
- Java中final修饰符的理解
记录一下今天复习的final修饰符,其中 final类的成员方法隐式被final修饰部分 仅代表我个人理解 总结如下: final有三种使用方法: 1.final修饰类 final修饰类表示这个类不能 ...
- Java中final修饰变量
一:final修饰的变量即成为常量,只能赋值一次,但是final所修饰局部变量和 员变量有所不同. (1)final修饰的局部变量必须使用之前被赋值一次才能使用 (2)final修饰的成员变量在声明时 ...
- java中final关键字、权限修饰符、内部类(成员内部类、局部内部类、匿名内部类)
final关键字: final表示最终的不可变的,在java中可以用来修饰类或方法.局部变量.成员变量. // 1.final关键字修饰类需要放在class关键字前面,表示不可变的类,需要注意,这里表 ...
- 关于Java中各种修饰符与访问修饰符的说明
关于Java中各种修饰符与访问修饰符的说明 类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 ...
- java中final关键字的使用
final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰 类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...
- JAVA中Final的用法
JAVA中Final的用法 1. 修饰基础数据成员的final 这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改.如java.lang.Math类中的 ...
- 转 Java中final、finally、finalize的区别与用法
Java中final.finally.finalize的区别与用法 1.简单区别: final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承. finally是异常处理语句结构 ...
最新文章
- LeetCode简单题之重新分配字符使所有字符串都相等
- 零售行业O2O盛行 或成黑客窃取数据目标
- python django项目断点调试
- 阿里云 apt-get update 403
- 二分图模板(女生赛要用)
- 个人创业做什么好?以下这几个值得考虑
- 常用数据验证正则表达式释义(附:正则表达式常用符号)
- 基于递归的前序二叉树遍历实现
- 10个每个开发人员都喜欢的JavaScript模式
- Linux操作Oracle(16)——Oracle扩容报错:ORA-01144_表空间数据文件超出最大限制
- 详细教程:编译Linux最新内核
- Windows 7 64位下使用ADB驱动
- 普林斯顿微积分读本-[美]阿德里安·班纳著-修订版;杨爽, 赵晓婷, 高璞译
- 双线性映射:零知识证明的引擎
- javascript语法
- iOSAPP创建桌面快捷方式
- Python 如何反方向迭代一个序列
- 2021-06-02-IPFS私有网络搭建
- 剑麻的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- Java Exchanger