如何解决Java双重初始化
尝试过一个简单的程序(使用0和100来显示“特殊”常数和通用常数之间的差异)之后,Sun Java 6编译器将为1和2输出相同的字节码(情况3和4与2相同)就编译器而言)。
因此,例如:
double x = 100;
double y = 100.0;
编译为:
0: ldc2_w #2; //double 100.0d
3: dstore_1
4: ldc2_w #2; //double 100.0d
7: dstore_3
但是,我在Java语言规范中看不到任何能 保证 常量表达式的编译时扩展的东西。对于以下情况,存在编译时范围 缩小 的问题:
byte b = 100;
如5.2节所述,但这不是完全一样的。
也许有比我更眼神敏锐的人可以在某处找到保证…
解决方法
这些陈述有何不同?
- 双虚拟= 0;
- 双虚拟= 0.0;
- 双虚拟= 0.0d;
- 双虚拟= 0.0D;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。