java吧 关注:1,297,196贴子:12,831,866
  • 3回复贴,共1

你们使用Integer类,操作加减乘除有没有调用intValue()方法?

只看楼主收藏回复

Integer one = new Integer(1);
Integer two = new Integer(2);
System.out.println(one + two);// 自动拆箱
System.out.println(one.intValue() + two.intValue());// 手动转成基本类型
你们都是用哪一种呢?性能上有差异吗?


IP属地:广东1楼2023-06-30 18:35回复
    单从效率上来看,没有差异。你可以去看他们生成的字节码。你直接one+two,实际上在编译后生成的class文件中,都是调用了intValue方法。自动拆箱其实就是javac编译器帮你自动调用intValue方法。你源代码写的不一样,但是实际上编译出来的字节码是一样的。不过从代码简洁性上来说,显然one+two这种形式更好。不过你上面的例子不需要用包装类,直接用int才是最好的,效率更高。


    IP属地:湖南来自Android客户端2楼2023-06-30 20:17
    收起回复