其实我是个好人 2014-11-21 01:19 采纳率: 100%
浏览 2439
已采纳

int i = 1;Integer b = new Integer(1); i==b 为true

基本数据类型存放在栈中,引用也存放在栈中,所以1,i,b应该都在栈中,而b的实例对象在堆中。是否堆中存放实例对象的地址,而实例对象的值任然是栈中的那个1呢?

  • 写回答

5条回答

  • 大明哥_ Java领域优质创作者 2014-11-21 01:54
    关注

    有个东西叫做自动拆箱!!
    你运行这段程序后看看它的字节码就了解是怎么回事了!!

    E:>javap -c Test
    Warning: Binary file Test contains com.JUtils.base.Test
    Compiled from "Test.java"
    public class com.JUtils.base.Test {
    public com.JUtils.base.Test();
    Code:
    0: aload_0
    1: invokespecial #1 // Method java/lang/Object."":
    ()V
    4: return

    public static void main(java.lang.String[]);
    Code:
    0: iconst_1
    1: istore_1
    2: new #2 // class java/lang/Integer
    5: dup
    6: iconst_1
    7: invokespecial #3 // Method java/lang/Integer.""
    :(I)V
    10: astore_2
    11: getstatic #4 // Field java/lang/System.out:Ljava/
    io/PrintStream;
    14: iload_1
    15: aload_2
    16: invokevirtual #5 // Method java/lang/Integer.intValue ///////重点是这句代码!!!
    :()I
    19: if_icmpne 26
    22: iconst_1
    23: goto 27
    26: iconst_0
    27: invokevirtual #6 // Method java/io/PrintStream.printl
    n:(Z)V
    30: return
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)