rjz*_*zii 6 javac
目前我们正在为大型项目(大约2000个源文件)重新编写所有构建系统的脚本,并且已经谈到对文件进行二进制比较以确保一切正确,从而导致以下问题:编辑的输出javac保证是相同的,还是可以改变?
javac
另一个问题暗示常量池可能有不同的顺序,但假设我们能够控制进入javac调用的文件的顺序是否仍然存在差异的可能性?我们正在使用Ant和Maven作为构建的一部分,如果这也可能影响事物.
rua*_*akh 4
绝对不保证字节码相同;一方面,编译器可以执行不影响任何保证行为的优化。Java 语言规范甚至在一些地方提到了编译器可能执行的优化;例如,对于字符串连接运算符+,它指出:
+
一种实现可以选择在一个步骤中执行转换和串联,以避免创建然后丢弃中间String对象。为了提高重复字符串连接的性能,Java 编译器可以使用类或类似技术来减少通过表达式求值创建的StringBuffer中间对象的数量。String
String
StringBuffer
[关联]
归档时间:
14 年,6 月 前
查看次数:
443 次
最近记录: