使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
2024-08-31 22:19:43
使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句:
final StringBuilder a=new StringBuilder ("immutable");
执行如下语句将报告编译错误:
a = new StringBuilder ("");
但如下语句则是完全正确的
a.append("fkjava.org");
有人希望在定义方法的形参时,通过final修饰符来阻止方法内部修改传进来的实参:
public void method(final StringBuilder param)
{
}
实际上这没有用,在该方法内部仍然可以增加如下代码来修改实参对象:
param.append("fkjava.org");
最新文章
- Task.Factory.StartNew的用法
- TypeScript Class(类)
- AJAX三种返回值方式
- DuiLib(一)——窗口及消息
- hdu3804(树链剖分)
- 基于 GCDAsyncSocket,简单实现类似《你猜我画》的 socket 数据传输
- Windows远程桌面连接 出现身份错误 要求的函数不受支持
- dnsmasq 设置自动获取主机名
- day 14 三元运算符,列表字典推导式,递归,匿名函数,内置函数(排序,映射,过滤,合并)
- 一个小工具,利用php把指定目录文件递归上传到阿里云OSS
- web前端开发过程遇到的问题及解决方式(一)
- hover效果的几种方式
- scala+hadoop+spark环境搭建
- C#/.NET 使用 CommandLineParser 来标准化地解析命令行
- Win7 Eclipse调试Centos Hadoop2.2-Mapreduce(转)
- python的filter函数的使用方法详解以及使用案例,是否以什么结尾,是否大于什么(判断是True,则留下来)
- 【总结】对FFT的理解 / 【洛谷 P3803】 【模板】多项式乘法(FFT)
- MR案例:倒排索引
- VMware vSphere之vCenter
- C++11 template parameter deduction
热门文章
- JMM之Java线程间通讯——等待通知机制及其经典范式
- 教你如何使用flask实现ajax数据入库
- Clickhouse 分布式表&;本地表 &;ClickHouse实现时序数据管理和挖掘
- 5、CPU 的线程与操作系统的线程有何关系?操作系统中的进程和线程是什么关系?
- ImageView和使用第三方库加载网络图片
- _IO_2_1_stdin_ 任意写及对 _IO_2_1_stdout_ 任意读的补充
- Qt:Qt Creator分屏显示代码
- ElementUI Tree树形控件renderContent return时报错
- cpolar——安全的内网穿透工具
- netty系列之:NIO和netty详解