gpt4 book ai didi

java - 这是编译或反编译的副作用吗?

转载 作者:行者123 更新时间:2023-11-29 10:13:29 25 4
gpt4 key购买 nike

正在运行服务器。一个人被解雇了。他删除了源代码。我们必须反编译……:我注意到一些奇怪的东西:

1) 变量减速也在程序的中间随机点2) HashMap 没有类型安全,例如

HashMap<Integer , Boolean> s = new HashMap<Integer , Boolean>();

变成了 HashMap s = new HashMap();同样的事情通常发生在列表和集合上。它也有一些副作用这导致了一些异常(exception) ((长) list.get(a_long).longValue());添加的东西是强制转换和 longValue 调用

3)我还注意到一些垃圾代码

这些事情发生是因为我反编译了程序,还是因为编译器或前开发人员的愚蠢而发生了这些事情?

最佳答案

您所观察到的是类型删除和自动装箱的结果。在 Java 泛型中,泛型类型由编译器强制执行,但字节码级别的底层实现没有泛型类型的概念(它们被“删除”),这就是它们消失的原因。类似地,Integer 和 int 之间的转换或相反(对于其他基元也是类似的)是通过“自动装箱”完成的,这基本上是编译器为您插入这些对转换方法的显式调用的地方。

关于java - 这是编译或反编译的副作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25379446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com