书中第142页这样解释:
Java允许在参数列表中以声明的方式将参数指明为final。这意味着你 无法在方法中更改参数引用所指向的对象:
此处红色区域;到底是说不能改变这个引用?还是说不能改变引用所指向的对象?还是二者都不可修改?
上代码测试了下;
1.首先可以确定;引用是绝对不允许修改的
2.测试看看引用指向的对象能不能改
public class Test {
public static void main(String[] args)
{
Info info = new Test().new Info();
info.setI(10);
System.out.println(info);
withFinal(info);
System.out.println(info);
}
public static void withFinal(final Info info)
{
info.setI(12);//标记一
//info = new Info();//标记二
}
class Info
{
@Override
public String toString() {
return "Info:" + i;
}
private int i ;
public void setI(int i)
{
this.i = i;
}
}
}
输出:
Info:10
Info:12
可见。final参数引用所指向的对象是可以修改的。
另:
代码中 标记二 处 说明了 final 参数引用本身是不能修改的。编译时错误
ps->以前还真没注意这个细节。这么经典的书对这点的解释也不够精准。呵呵
分享到:
相关推荐
Java编程思想第四版140页是这么描述的,“对应基本类型,final使数值恒定不变,对应对象引用,final使引用恒定不变。 * 一旦引用被初始化指向一个对象,就无法再把他改为指向另一个对象。然而对象其自身却是可以被...
final关键字正如其字面意思一样,意味着最后,比如被final修饰后类不能集成、变量不能被再赋值等,以下我们就来深入解析Java编程中final关键字的作用:
主要介绍了详解Java编程中final,finalize,finally的区别,这个在Java面试题中简直是太常见了...需要的朋友可以参考下
Java中的final关键字
Java SE编程入门教程 java static final(共24页).pptx Java SE编程入门教程 java this和super(共10页).pptx Java SE编程入门教程 java 常用API(共22页).pptx Java SE编程入门教程 javaGUI编程快速入门(1)(共...
带你深入理解Java中的final关键字_动力节点Java学院整理.
java中的final关键字是用来限制用户的。java final 关键字可以在许多上下文中使用
Java中final的深度剖析
Herbert Schildt 和James Holmes两位编程大师通过将Java应用于某些有趣、实用的计算机问题和编程任务中,全面展示了Java语言的强大功能、敏捷性、多样性和艺术性。本书各章内容分别涉及到Java精髓、递归下降的表达式...
Java编程中static和final关键字的陷阱.pdf
java中final和static讲解及实例
自己总结的java中final和static的区别,请大家提出宝贵意见。
Java中final类的简单使用,并对Java关键字的使用做出了总结
Java SE编程入门教程 java static final(共24页).pptx Java SE编程入门教程 java this和super(共10页).pptx Java SE编程入门教程 java 常用API(共22页).pptx Java SE编程入门教程 javaGUI编程快速入门(1)(共...
Java SE编程入门教程 java static final(共24页).pptx Java SE编程入门教程 java this和super(共10页).pptx Java SE编程入门教程 java 常用API(共22页).pptx Java SE编程入门教程 javaGUI编程快速入门(1)(共...
Java SE编程入门教程 java static final(共24页).pptx Java SE编程入门教程 java this和super(共10页).pptx Java SE编程入门教程 java 常用API(共22页).pptx Java SE编程入门教程 javaGUI编程快速入门(1)(共...
Java SE编程入门教程 java static final(共24页).pptx Java SE编程入门教程 java this和super(共10页).pptx Java SE编程入门教程 java 常用API(共22页).pptx Java SE编程入门教程 javaGUI编程快速入门(1)(共...
主要介绍了Java编程中final关键字的使用,是Java入门学习中的基础知识,需要的朋友可以参考下
浅析Java中的final关键字Java开发Java经验技巧共6页.pdf.zip
3.4.1 Final域 3.4.2 示例:使用Volatile类型来发布不可变对象 3.5 安全发布 3.5.1 不正确的发布:正确的对象被破坏 3.5.2 不可变对象与初始化安全性 3.5.3 安全发布的常用模式 3.5.4 事实不可变对象 3.5.5 ...