Integer

2019-11-23

public static void main15(String[]args){

//装箱

    Integer integer=1000;

    //拆箱

    int i=integer;

    //javap -c IntegerTest.class

//  public static void main(java.lang.String[]);

//    Code:

//      0: iconst_1

//      1: invokestatic  #8                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;

//      4: astore_1

//      5: aload_1

//      6: invokevirtual #5                  // Method java/lang/Integer.intValue:()I

//      9: istore_2

//      10: return

//ZH总结 不管integer是1 还是1000 反编译都是Integer.valueOf,再在这个里面取常量池的值

//    public static Integer valueOf(int i) {

//        if (i >= IntegerCache.low && i <= IntegerCache.high)

//            return IntegerCache.cache[i + (-IntegerCache.low)];

//        return new Integer(i);

//    }

}

public static void main(String[] args) {

//原来Byte, Short, Long有固定范围: -128 到 127。对于Character, 范围是 0 到 127

//        -128至127之间的整数

//        true 和 false的布尔值

        Short s1 =1;

        Short s2 =1;

        System.out.println(s1==s2);

        Short s3 =128;

        Short s4 =128;

        System.out.println(s3==s4);

        System.out.println("---");

        Long l1 =1L;

        Long l2 =1L;

        System.out.println(l1==l2);

        Long l3 =128L;

        Long l4 =128L;

        System.out.println(l3==l4);

        System.out.println("---");

        Character c1 =1;

        Character c2 =1;

        System.out.println(c1==c2);

        Character c3 =128;

        Character c4 =128;

        System.out.println(c3==c4);

        //output

//true

//false

//---

//true

//false

//---

//true

//false

//ZH总结 对于整形都有常量池 再加一个char

    }

你可能感兴趣的:(Integer)