Java final数据

允我心安 提交于 2020-03-17 00:25:31

许多程序设计语言都有自己的办法告诉编译器某个数据是“常数”。常数主要应用于下述两个方面:

1)编译期常数,它永远不会改变;

2)在运行期间初始化的一个值,我们不希望它发生变化。ss

对于编译期的常数,编译器(程序)可将常数值“封装”到需要的计算过程里。也就是说,计算可在编译期间提前执行,从而节省运行时的一些开销。在Java 中,这些形式的常数必须属于基本数据类型(Primitives),而且要用final 关键字进行表达。

无论static 还是final 字段,都只能存储一个数据,而且不得改变。

若随同对象句柄使用final,而不是基本数据类型,它的含义就稍微让人有点儿迷糊了。对于基本数据类型,final 会将值变成一个常数;但对于对象句柄,final 会将句柄变成一个常数。进行声明时,必须将句柄初始化到一个具体的对象。而且永远不能将句柄变成指向另一个对象然而,对象本身是可以修改的。Java对此未提供任何手段,可将一个对象直接变成一个常数。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!