1、概述
- Integer 类在对象中包装了一个基本类型 int 值
- Integer 类提供了很多方法,能在 int 类型和 String 类型之间相互转换
package zhengshu; public class IntegerDm { public static void main(String[] args){ System.out.println(Integer.toBinaryString(100));//转换成二进制数:1100100 System.out.println(Integer.toOctalString(100));//转换成八进制数:144 System.out.println(Integer.toHexString(100));//转换成十六进制数:64 System.out.println("---------------------------"); System.out.println(Integer.MAX_VALUE);//代表int所能表示的最大值 System.out.println(Integer.MIN_VALUE);//代表int所能表示的最小值 } }
String 类型转换成 int 类型:
package zhengshu;
public class IntegerDm {
public static void main(String[] args){
int i1 = 100;
System.out.println("i1的值为:"+i1);
Integer i2 = new Integer(i1);
System.out.println("i2的值为:"+i2);
String s1 = "100";
Integer i3 = new Integer(s1);//字符串转换成数字,前提是这个字符串是由数组字符组成
System.out.println("i3的值为:"+i3);
}
}
2、构造方法
public Integer(int value)
public Integer(String s)
3、成员方法
public int intValue()
public static int parseInt(String s)
public static String toString(int i)
public static Integer valueOf(int i)
public static Integer valueOf(String s)
package zhengshu; public class IntegerDm { public static void main(String[] args){ //int -> Stirng int i1 = 100; String s1 = ""+ i1;//int -> Stirng System.out.println(s1);//输出字符串 String s2 = String.valueOf(i1);//int -> Stirng,返回给定参数的原生 Number 对象值 System.out.println(s2); Integer i2 = new Integer(i1); System.out.println(i2); String s3 = Integer.toString(i1); System.out.println(s3); System.out.println("------------------------"); //String -> int String st1 = "200"; Integer in1 = new Integer(st1); System.out.println(in1); int in2 = in1.intValue(); System.out.println(in2); System.out.println(Integer.parseInt(st1));//parseInt() 方法用于将字符串参数作为有符号的十进制整数进行解析 } }
4、常用的基本进制转换
public static String toBinaryString(int i)
public static String toOctalString(int i)
public static String toHexString(int i)
5、十进制转到其他进制
public static String toString(int i,int radix)
6、其他进制转到十进制
public static int parseInt(String s,int radix)
package zhengshu; public class IntegerDm { public static void main(String[] args){ System.out.println(Integer.toBinaryString(100));//十进制转二进制 System.out.println(Integer.toOctalString(100));//十进制转八进制 System.out.println(Integer.toHexString(100));//十进制转十六进制 System.out.println("---------------------------"); //十进制转到其他进制 System.out.println(Integer.toString(100,2));//十进制转二进制 System.out.println(Integer.toString(100,8));//十进制转八进制 System.out.println(Integer.toString(100,16));//十进制转十六进制 System.out.println(Integer.toString(100,7));//十进制转七进制 System.out.println(Integer.toString(100,30));//十进制转三十进制 System.out.println("============================"); //其他进制转到十进制 System.out.println(Integer.parseInt("100",10));//那个数字的10进制是100,100 System.out.println(Integer.parseInt("100",2));//那个数字的2进制是100,4 System.out.println(Integer.parseInt("100",8));//那个数字的8进制是100,64 System.out.println(Integer.parseInt("100",16));//那个数字的16进制是100,256 } }
7、自动装箱与拆箱
Integer x = new Integer(4);
可以写成Integer x = 4;
(自动装箱)x = x + 5;
(自动拆箱),通过 intValue 方法- JDK 1.5 新特性(自动装箱):把基本类型转换为包装类类型
- JDK 1.5 新特性(自动拆箱):把包装类类型转换为基本类型
package zhengshu; public class IntegerDm { public static void main(String[] args){ byte b1 = 100; byte b2 = b1; Integer i1 = new Integer(200);//定义一个 int 类型的包装类型变量i1 Integer i2 = 300; i2 = i2 + 400; System.out.println("i2的值为:"+i2);//输出:700 Integer i3 = Integer.valueOf(500);//自动装箱 i3 = Integer.valueOf(i3.intValue() + 60);//自动拆箱,再自动装箱 System.out.println((new StringBuilder("i3的值为:")).append(i3).toString());//输出:560 } }
package zhengshu;
public class IntegerDm {
public static void main(String[] args){
Integer i1 = new Integer(128);
Integer i2 = new Integer(128);
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));
System.out.println("-----------------------");
Integer i3 = 128;
Integer i4 = 128;
System.out.println(i3 == i4);
System.out.println(i3.equals(i4));
System.out.println("=========================");
Integer i5 = 127;
Integer i6 = 127;
System.out.println(i5 == i6);
System.out.println(i5.equals(i6));
System.out.println("+++++++++++++++++++++++++");
int i7 = 1280;
Integer i8 = 1280;
System.out.println(i7 == i8);
// 针对-128到127之间的数据,做了一个数据缓冲池,如果数据是该范围内的,每次并不创建新的空间
}
}
注意:
- Integer的数据直接赋值,如果在-128到127之间,会直接从缓冲池里获取数据
- 在使用时,
Integer x = null;
上面的代码就会出现 NullPointerException(空指针异常)