面试题:使用finalkeyword修饰一个变量时,是引用不能变,还是引用的对象不能变?
2024-08-31 22:19:42
/*
* 问题:使用finalkeyword修饰一个变量时,是引用不能变,还是引用的对象不能变
* 答:
* 使用finalkeyword修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是能够改变的。 */
public class Test10 {
// final修饰基本类型的变量
public static final char CHAR = '中';
// final修饰引用类型的变量
public static final StringBuffer a = new StringBuffer("StringBuffer"); public static void main(String[] args) {
// 编译报错,引用不能变
// a = new StringBuffer("hehe");
// 引用变量所指向的对象中的内容还是能够改变的
a.append("xxx"); } public static int method1(final int i) {
// i = i + 1;// 编译报错,由于final修饰的是基本类型的变量
return i;
} // 有人在定义方法的參数(引用变量)时,可能想採用例如以下的形式来阻止方法内部改动传进来的參数对象,
// 实际上,这是办不到的,在该方法内部任然能够添加例如以下代码来改动參数对象
public static void method2(final StringBuffer buffer) {
buffer.append("buffer");// 编译通过,由于final修饰的是引用类型的变量
} }
最新文章
- 关于iphone、安卓手机VPN全面解析
- 25.在从1到n的正数中1出现的次数[NumberOf1Between1_N]
- Objective-C 类的继承、方法的重写和重载
- Android学习笔记⑧——UI组件的学习AdapterView相关2
- 了解开源的许可证GPL、LGPL、BSD、Apache 2.0的区别 【转】
- SQL Server 内存开销分析
- C/C++ 内存布局详解(经典)(很久前不知哪儿转载的)
- 快速排序算法C#实现
- pdo操纵mysql数据库
- [ubuntu]apt-get update突然出现arm package找不到
- 纪念使用FTPClient工具所遇到的
- nginx default_server的作用
- SQL内外连
- 20155234 昝昕明《基于ARM实验箱的国密算法应用》课程设计个人报告
- 关于“代码规范”,“Review”和“Check list”(续)
- Windows下sklearn源码安装
- 小鸡G4工程款 上手体验
- SQL Server 不同网段IP通过名称访问
- Java多线程——不变性与安全发布
- 计蒜客D2T2 蒜头君的排序(动态维护树状数组)