Java 包装类
1. 8大基本类型
java是面向对象的语言,基本类型不是new出来的不能使用像object提供的方法,所以有了包装类
package com.qf.demo02; import javax.swing.text.InternationalFormatter; public class Test6Integer { public static void main(String[] args) { //静态的属性: System.out.println("获取最大值:"+Integer.MAX_VALUE); System.out.println("获取最小值:"+Integer.MIN_VALUE); //byte的最大值和最小值 System.out.println(Byte.MAX_VALUE); System.out.println(Byte.MIN_VALUE); //1.创建包装类的对象: int i = 100;//基本类型 // 创建一个包装类的对象,包装的是int类型的i Integer i2obj = new Integer(i);//将基本类型int,构建一个Integer对象 Integer i3obj = new Integer("200");//基于String类型,构建一个Integer对象 //2.类的对象有方法 //A:Integer类,重写了Object中的toString()方法。不显示地址,显示数值本身。String类型 System.out.println(i2obj.toString());//"100" System.out.println(i3obj.toString());//"200" //B:将对象,转为基本类型:6种类型 Number父类中提供的 byte b1 = i2obj.byteValue();//将i2obj这个对象,转为byte类型的数据 short s1 = i2obj.shortValue(); int i2 =i2obj.intValue(); long l1 = i2obj.longValue(); float f1 = i2obj.floatValue(); double d1 = i2obj.doubleValue(); //C:通过静态的方法parseXXX(),将一个String类型,解析为基本类型的数据 int i3 = Integer.parseInt("123");//猜:长的像数值才可以。"兼容类型" byte b3 = Byte.parseByte("99"); float f3 = Float.parseFloat("1.23"); System.out.println(i3); System.out.println(b3); System.out.println(f3); //不是每个String都能转成数值,不兼容的不行 // int i4 = Integer.parseInt("memeda");//java.lang.NumberFormatException: For input string: "memeda" //D:通过valueOf(基本类型/String)-->获取一个包装类的对象类型 Integer i4obj = Integer.valueOf(100); Integer i5obj = Integer.valueOf("105");//猜:长的像数值才可以。"兼容类型" System.out.println(i5obj);//? } }
package com.qf.demo02; public class Test7Character { public static void main(String[] args) { System.out.println("最大值:"+(int)Character.MAX_VALUE);//65535 System.out.println("最小值:"+(int)Character.MIN_VALUE);//0 //构建一个包装类的对象 Character c1 = new Character('a');//对象 char c2 = '*';//基本类型 //判断给定的字符,是否是数字:0-9 System.out.println(Character.isDigit(c2));//boolean //判断给定的字符,是否是字母[a-zA-Z] System.out.println(Character.isLetter(c2));//boolean //判断是否是小写字母 System.out.println(Character.isLowerCase('A'));//false //判断是否是大写字母 System.out.println(Character.isUpperCase('A'));//true //将大写字母,转为小写字母 System.out.println(Character.toLowerCase('A')); //将小写字母,转为大写字母 System.out.println(Character.toUpperCase('*')); } }
2. 装箱和拆箱
package com.qf.demo02; import java.util.Arrays; public class Test8Auto { public static void main(String[] args) { int i = 10; Integer i2obj = new Integer(i); Integer i3obj = Integer.valueOf(i); //jdk1.5之后,自动装箱和拆箱 Integer i4obj = 10;//自动装箱,将基本类型,直接赋值给包装类的对象。 int j = i4obj;//自动拆箱,将包装类的对象的值,直接赋值给一个基本数据类型。 //数组,存储8个基本类型的数据。? //数据类型统一: byte b1 = 10; short s1 = 20; int i1 = 30; long l1 = 40L; float f1 = 1.23f; double d1 = 2.34; char c1 = 'a'; boolean bb1 = true; Object[] arr = new Object[8];//?存储神马的数据 System.out.println(Arrays.toString(arr)); arr[0] = b1;//byte-->Byte(自动装箱)-->Object类(向上转型) arr[1] = s1;//short-->Short(自动装箱)-->Object类(向上转型) arr[2] = i1;//int --> Integer --> Object arr[3] = f1; arr[4] = d1; arr[5] = c1; arr[6] = bb1; arr[7] = l1; for(Object obj:arr){ System.out.println(obj.toString()); } System.out.println("-----------"); int i2 = (int)arr[2];//Object-->Integer -->int System.out.println(i2); int i3 = (Integer) arr[2];//Object -->Integer System.out.println(i3); } }
package com.qf.demo02; public class Test9 { public static void main(String[] args) { //Number:Byte,Short,Integer,Long,Float,Double //缓存数据:256个对象,来包装对应的数值 /* * [-128,127] * 包装类的对象:-128,127,包装类中已经创建好了现成的,用就完了 */ Integer i1 = 100; Integer i2 = 100; System.out.println(i1 == i2);//地址,true Integer i3 = 200; Integer i4 = 200; System.out.println(i3 == i4);//false } }