A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马清泽 中级黑马   /  2012-12-7 09:06  /  1117 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

final作用是不能被实例化不能被继承等,但是枚举中也大量用final关键字
fiinal更深层的作用什么?什么情况下使用更有效率更安全?

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

1 个回复

正序浏览
在我们定义了final关键字的变量,在程序运行时虚拟机会将这些变量放在一个特殊的地方——运行时常量池。这个地方的变量的值是不在加载类的时候被定了初始值的。所以一旦被定义,他们的值就不能被改变和继承。在枚举中使用final倒不是强调他的不可改变性,而是为了从提高性能上考虑的。即加载的时候就进行初始化,放进常量池中。
要说更深层次的作用那就是保证程序的正确性,保证不会出现悬挂引用和内存溢出。比如。在局部内部类中不能访问局部变量,除非局部变量是final类型的。就是为了不产生悬挂引用和内存溢出。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马