在使用对象计算整数的情况下,plus运算符如何工作?

时间:2017-03-18 09:47:19

标签: java oop object integer

人!

如果我们使用Integer对象添加整数,那么运算符+如何实现并在Java内部工作?

package ru.systemres.ru;

public class Main {
    public static void main(String[] args) {
        Integer iOb = new Integer(10);
        int a = iOb + 5;
        System.out.println(a);

    }
}

是否超载?你能告诉我一些jvm的源代码吗? 谢谢!

3 个答案:

答案 0 :(得分:2)

Autoboxing 是Java编译器在基元类型及其对应的对象包装类之间进行的自动转换。

拆箱期间 (Object(Integer) - to - > Primitive(int))

隐式Integer.intValue()被调用以返回int值。

请参阅:https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html

答案 1 :(得分:0)

iOb不只是任何旧对象 - 它是Integer。当您在这样的上下文中使用它时,它outboxedint,然后执行计算。

答案 2 :(得分:0)

  

是否超载?你能告诉我一些来自jvm的源代码吗?   适用它?

它不会超载,而是Integer iOb对象首先被取消装箱到int,然后将5添加到变量a。< / p>

我建议您在Java中使用here来提及Autoboxing和Unboxing。