1.包装类:
1.包装类类型:为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一个基本数据类型都提供了对应的类类型。
2.包装类常用情景:
1、在集合中使用(泛型) 2、用于基本数据类型与字符串之间的转换
3.装箱和拆箱
/* 装箱:把基本类型的数据,包装到包装类中(基本类型数据类型-->包装类) 构造方法: Integer(int value) 构造一个新分配的 Integer对象,该对象表示指定的 int值。 Integer(String s) 构造一个新分配 Integer对象,表示 int由指示值 String参数。 静态方法: valueOf(int i) 返回一个 Integer指定的 int值的 Integer实例。 static Integer valueOf(String s) 返回一个 Integer对象,保存指定的值为 String 。 拆箱:在包装类中取出基本数据类型的数据(包装类-->基本类型的数据) 成员方法: public int intValue() */ public class IntegerDemo1 { public static void main(String[] args) { //Integer(int value) //构造一个新分配的 Integer对象,该对象表示指定的 int值。 Integer i1 = new Integer(100); System.out.println(i1);//100 //Integer(String s) //构造一个新分配 Integer对象,表示 int由指示值 String参数。 //string只能是基本数据类型"0",如果是其他类型则抛出异常 Integer i2 = new Integer("100"); System.out.println(i2);//100 //System.out.println(new Integer("a"));//NumberFormatException 抛出异常 //valueOf(int i) //返回一个 Integer指定的 int值的 Integer实例 Integer i3 = 100; Integer i4 = Integer.valueOf(100); System.out.println(i3);//100 System.out.println(i4);//100 //static Integer valueOf(String s) //返回一个 Integer对象,保存指定的值为 String 。 Integer i5 = Integer.valueOf("78"); System.out.println(i5);//78 //public int intValue() //拆箱 int i = i5.intValue(); System.out.println(i);//78 } }
4.自动拆箱和装箱
public class IntegerDemo2 { public static void main(String[] args) { //自动装箱。直接把int类型的整数赋值包装类 Integer i1 = 1;//相当于Integer i1 = new Integer(1) System.out.println(i1);//1 //自动拆箱:i1是包装类,无法直接参与运算,可以自动转换为基本数据类型,再进行计算 //i1+2;相当于i1.intValue()+2=3 i1 = i1 + 1 ; System.out.println(i1);//2 } }
5.一些方法的使用
/* 需求1:将100这个数据计算出它的二进制,八进制,十六进制 需求2:如何用代码求出int类型的范围? */ public class IntegerDemo3 { public static void main(String[] args) { //public static String toBinaryString(int i) //将int类型的值转成二进制 String s = Integer.toBinaryString(100); System.out.println("100的二进制:"+s); //public static String toOctalString(int i) //将int类型的值转成八进制 String s1 = Integer.toOctalString(100); System.out.println("100的八进制:"+s1); //public static String toHexString(int i) //将int类型的值转成十六进制 String s2 = Integer.toHexString(100); System.out.println("100的十六进制:"+s2); //public static final int MIN_VALUE System.out.println("int类型的范围最小是:"+Integer.MIN_VALUE); //public static final int MAX_VALUE System.out.println("int类型的范围最大是:"+Integer.MAX_VALUE); } }
6.基本数据类型int型与字符串之间的转换
/* int类型与String类型的相互转换 int --- String 1.基本数据类型的值+"" //最简单的方法 2.包装类的静态方法toString(参数)不是obje类的toString,是重载 static String toString(int i) //返回一个指定整数的String对象 3.String类的静态方法valueof(参数) public static String valueOf(int i) //返回int类型的字符串 4.int -- Integer -- String public String toString() String --- int 1. String -- int -- Integer 2.使用包装类的静态方法parseInt("字符串"); public static int parseInt(String s) */ public class IntegerDemo4 { public static void main(String[] args) { int num = 100; //int --- String //方式1:基本数据类型的值+"" String s1 = num+""; System.out.println(s1+200);//100200 //方式2:包装类的静态方法toString(参数)不是obje类的toString,是重载 //static String toString(int i) String s2 = Integer.toString(100); System.out.println(s2+200);//100200 //方法3:public static String valueOf(int i) //返回int类型的字符串 String s3 = String.valueOf(100); System.out.println(s3+200);//100200 //方式4 int -- Integer -- String Integer integer = new Integer(100); System.out.println(integer); //public String toString() String s = integer.toString(); System.out.println(s+100);//100100 System.out.println("==============================="); //String -- int String string = "100"; //方式1: //String -- Integer -- int Integer i1 = new Integer(string); System.out.println(i1+100);//200 //public int intValue() int intI1 = i1.intValue(); System.out.println(intI1+100);//200 //方式2: //public static int parseInt(String s) int i = Integer.parseInt(string); System.out.println(i+100);//200 // int i2 = Integer.parseInt("100abc"); //NumberFormatException // System.out.println(i2); } }