![]() |
1
16
是的,由于兼容性要求,编译器“选择旧样式而不是新样式”。想象一下,在Java 5出现之前编写的一些代码,在Java 5下编译时突然改变了行为!那就太糟糕了。 自Java诞生以来,就有了广泛的转换,但是自动装箱和VARARGS对于Java 5来说是新的。 |
![]() |
2
5
下面是一个例子:
所以这意味着在自动氧化和使用varargs之前,它会变宽。如果采用长参数加宽的方法,在变容器之前就选择了自动氧化。 |
![]() |
3
1
编译器必须保持与以前版本的Java的兼容性。除此之外,编译器选择对参数的最有效/最小更改。升级到另一个原语比创建包装对象更重要,这比创建与内存使用和性能相关的数组更重要。 |
![]() |
4
0
扩展性能更好的原因是它是一个简单的扩展签名操作,对于大多数CPU来说是一条指令。装箱需要一个堆分配,装箱对象的访问成本更高,至少需要一个额外的内存访问。 即使没有兼容性问题,在我看来,您还是希望语言首先选择最快的重载,只要这种行为不会造成任何更糟的问题。 |
![]() |
5
0
我不了解你,但我更希望编译器通过我的
换句话说,原因是效率。语言设计更倾向于更有效的调用机制,而不需要它来分配装箱项。
“需要”,你问?varargs函数期望获得
兼容性也是一个不错的理由。 |
![]() |
6
0
不断扩大的节拍拳击, 拳击胜过仿制药, 仿制药击败瓦拉格斯 |
![]() |
7
-2
要解决上述问题,请记住: 扩大节拍拳击,拳击节拍varargs 输出将是 转换为长:3 |
|
user29759326 · 如何返回递归函数中的最后一个值? 3 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 3 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 3 月前 |
![]() |
rudraraj · java中未声明最终变量 3 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 3 月前 |