加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

将“const”变量传递给Java中的方法

发布时间:2020-12-14 16:43:53 所属栏目:Java 来源:网络整理
导读:在 Java中有一个等价于在C中传递const引用吗? 关于方法签名不排除“常识”误导吗? 解决方法 不,没有. Java“final”并不完全等同于C“const”.以下(最终变量的延迟初始化)在Java中起作用: final double x;int w = 1;if (w 2){ x = 0.5;}else{ x = - 0.5;}
在 Java中有一个等价于在C中传递const引用吗?
关于方法签名不排除“常识”误导吗?

解决方法

不,没有.

Java“final”并不完全等同于C“const”.以下(最终变量的延迟初始化)在Java中起作用:

final double x;
int w = 1;
if (w > 2)
{
    x = 0.5;
}
else
{
    x = - 0.5;
}

但是在“final”替换为“const”的C中不起作用.

在方法声明中对变量使用“final”可能对Java有用,因为允许您在方法内创建的任何匿名类中使用此变量.

PS.我首先对Java中缺少“const”感到失望,但后来学会了与“final”一起生活.

PS2.在这个线程中链接的Java词汇表(http://mindprod.com/jgloss/immutable.html)有一个错误:不,你没有给出100%的保证,最终的变量不会改变它的值:

1)它从“未定义”更改为“已定义”,但是编译器会在初始化前引用它

2)在Linux上,当存储在一个寄存器中时,双精度为80位,但存储在内存中则为64位.当最后一个双变量被推出寄存器时,它将被截断并更改其值.正如乔尔·斯波尔斯基(Joel Spolsky)所说,“抽象已经发生了泄漏”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读