基本类型包装类
Integer的构造方法
// public Integer(int value)
Integer i = new Integer(100);
// public Integer(String s)
Integer ii = new Integer("100");
//报错 NumberFormatException
Integer iii = new Integer("abc");
//注意:这里的字符串必须是由数字字符组成;
String 和 int 的相互转换
String 转换为 int :
//String -- int
String str = "100";
//方式1:String -- Integer -- int
Integer i = new Integer(str);
int n1 = i.intValue();
System.out.println("n1:" + n1);
//方式2:public static int parseInt(String s)
int n2 = Integer.parseInt(str);
System.out.println("n2:" + n2);
int 转换为 String :
//int -- String
int num = 100;
//方式1:"" +
String s1 = "" + num;
System.out.println("s1:" + s1);
//方式2:public static String valueOf()
String s2 = String.valueOf(num);
System.out.println("s2:" + s2);
//方式3:int -- Integer -- String
Integer i = new Integer(num);
String s3 = i.toString();
System.out.println("s3:" + s3);
// 方式4:public static String toString(int i)
String s4 = Integer.toString(num);
System.out.println("s4:" + s4);
JDK5新特性:自动装箱与自动拆箱
- 自动装箱 基本类型–引用类型
- 自动拆箱 引用类型–基本类型
Integer i = 100; //自动装箱
// Integer i = Integer.valueOf(100)
i += 200; //自动拆箱,再自动装箱
// i = Integer.valueOf(i.intValue() + 200);
System.out.println("i:" + i);
// System.out.println((new StringBuilder("i:")).append(i).toString());
若Integer i = null,会报错 NullPointerException;
建议先判断是否为null,然后再使用;
if (i != null) {
i += 1000;
System.out.println(i);
}
常用的进制转换
//十进制到其他进制:
public static String toString(int i,int radix)
//其他进制到十进制:
public static int parseInt(String s,int radix)
面试题:-128到127之间的数据缓冲池问题
Integer的数据直接赋值,如果数据是-128到127之间的,每次并不创建新的空间,会直接从缓冲池里获取数据;
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4);
System.out.println(i3.equals(i4));
Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6);
System.out.println(i5.equals(i6));
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8);
System.out.println(i7.equals(i8));