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
}
网友评论