final关键字的理解
2018-10-13 06:28:11来源:博客园 阅读 ()
- 类声明为final 类不可被继承,同时隐含所有的方法是final的
- 方法声明为final 方法不可被重写
- final修饰变量 某种程度上变量不可修改(不可变)
final不可变的理解 final只能约束一个变量的引用一旦被赋值后,不能重新赋值
变量 a 使用fnal声明,a可以理解为一个变量的引用,所以a 不能再被赋值,那岂不是说明使用final声明的变量就是不可变的吗?
第一个list.add("hello"),执行正常 list中成功加入了一个值,第二个unmodifiableList.add("hello") 执行报错
总结:final声明一个变量,如果这个变量一旦被初始化,这个变量不能再指向其它的对象,在上面的例子上list指向了一个ArrayList对象后,list不能再指向其它的对象,但是它指向的这个对象是可以变的,final只能约束list这个引用不可以被再次赋值。如果需要对象本身不可变则需要相应的类支持不可变的行为。对于基本类型使用final关键字声明,一旦被赋值,引用不可以再次赋值,引用指向的值本身也不支持修改,在这种情况下可以理解使用final声明的变量是不可变的。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 深入理解:设计模式中的七大设计原则 2020-06-07
- 通俗理解spring源码(六)—— 默认标签(import、alias、be 2020-06-07
- 面试官:兄弟,说说Java的static关键字吧 2020-06-04
- 一文带你深入理解JVM,看完之后你还敢说你懂JVM吗?颠覆you 2020-06-02
- 深入理解Mybatis(第一讲)——手写ORM框架(简易版Mybatis 2020-06-01
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash