答案 0 :(得分:6)
因为Autoboxing和Auto Unboxing只是编译时功能。尝试在源文件中编写类似的内容,然后查看反编译代码:
Integer i = 10;
反编译代码:
Integer i = Integer.valueOf(10);
同样,
int i = new Integer(100);
在反编译时会给你以下内容:
int i = (new Integer(100)).intValue();
因此,JVM在运行时仍然严重依赖于这些方法,尽管在编写代码时它被屏蔽了。
答案 1 :(得分:2)
嗯,parseXxx()完全不同于拳击;它将 String 转换为原始对象。另一方面,valueOf()实际上是在装箱中使用 - 它要么构造一个新的包装器对象,要么从缓存中取出一个现有的一个,具体取决于值。 Java编译器生成对valueOf()的调用,这正是装箱的意思。
答案 2 :(得分:0)
1.有时可以明确说明一些转换(为了清晰起见,例如某些不明显/模糊的情况)。
2.旧的计划是否会因弃用警告过多而导致弃用?
答案 3 :(得分:0)
由于命令行参数被视为String Array,但是当你期望命令行参数而不是String数据类型(可能是基元)时给出条件,即boolean,int,byte,short,long,float,double, char需要将参数解析为程序所需的参数,并且在这里使用parseXXX()方法,准确的是parseXXX方法获取String参数并返回您尝试解析的相应数据类型。