final 和static final 变量的引用不变
来源:互联网 发布:不支持后端数据库设计 编辑:程序博客网 时间:2024/06/16 08:01
public class FinalReferenceTest { public static final StringBuffer sb = new StringBuffer(); public static void main(String[] args){ sb.append("hello"); } }
问题1:上面的程序能否编译通过?如果能,说明理由,如果不能,请说明理由。
解答:能编译通过。
分析:对于final修饰的引用类型,到底这个引用不能变还是这个引用指向的对象的内容不能变?答案是引用不能改变,而引用指向的内容是可以改变的。
问题2:上面的程序在语句sb.append("hello");后面添加语句 sb = new StringBuffer()能否编译通过?如果能,说明理由,如果不能,请说明理由。
解答:不能编译通过。
分析:由于对于final修饰的引用类型,是引用不能改变,而引用指向的内容是可以改变的。因为sb已经指向了第一次new...产生的对象,已 经不能改变,所以在语句sb.append("hello");后面添加语句 sb = new StringBuffer()是不能编译通过的。
总结:对于final类型的引用变量来说,所谓的不能改变指的是该引用不能改变。
阅读全文
0 0
- final 和static final 变量的引用不变
- final 和static final 变量的引用不变
- Java常见笔试面试题目解析(二):final与static final变量(引用类型)的引用不变
- final和static、static final的区别
- static final 和 final
- final、static、static final修饰引用类型时的区别
- 【java】final和final static的区别
- final和static final之间的区别
- final变量和static final变量之区别
- private final static ×× 和private static final xx 两者修饰变量的区别
- static和final修饰的变量之间的区别
- static与final变量
- final与static变量
- final和static的区别
- final 和 static的区别
- final和static的使用
- static 和 final 的顺序
- static和final的用法
- Android中级篇之Fresco-加载图片基础[详细图解Fresco的使用]
- JS的解析与执行——函数预处理与执行
- 虚拟机上网设置
- SocketChannel_NIO_编程_聊天Demo
- TypeScript学习笔记一
- final 和static final 变量的引用不变
- Capstone日志2017-12-13
- python3 关于文件的操作
- [HDU P2089]不要62
- 增量更新
- 引用传递
- Unity按住左键旋转物体,按住右键移动物体,移动端单指旋转物体,双指移动物体
- Java的接口理解
- Android中WebView与JS交互方式详解