Java 语言的8 种基本类型分别对应了8 种“包装类”。每一种包装类都封装了一个对应的基本类型成员变量,同时还提供了针对该数据类型的实用方法。
1)包装类的目的:用于将基本类型数据当作引用类型看待。
2 )包装类的名字:除了Integer(int),Character(char)外,其余包装类名字都是基本类型名首字母大写。
3 )拆、装箱:Integer i=new Integer(1);创建一个以对象形式存在的整数1,这种从基本类型转为引用类型的过程称之为“装箱”,反之叫“拆箱”。
4 )装箱:方式一:Double d=new Double(2.2);//装箱
方式二:Double d=Double.valueOf(2.2);//基本类型都有valueOf 方法
5 )拆箱:double num=d.doubleValue();//拆箱
6 )包装类使用前提:JDK1.5+
public static void say(Object obj){ System.out.println(obj); }
int a=1;//基本类型,不是Object 子类!
say(a);//在java 1.4 版本的时候,这里还是语法错误的!因为int 是基本类型,不是Object 对象,要自己写8 种基本类型对应的方法
7 )包装类的使用:实例化一个对象,该对象代表整数1;Integer 的作用是让基本类型int 作为一个引用类型去看待。这样就可以参与到面向对象的编程方式了。由此我们可以将一个int 当作一个Object 去看待了,也成为了Object 的子类。
Integer i=new Integer(a);//装箱,或者写Integer i=new Integer(1);
Integer ii=Integer.valueOf(a);//装箱另一种方式
int num=i.intValue();//拆箱 say(i);//Integer 是Object 的子类,可以调用!
8 )JDK1.5 包装类自动拆装箱 (原理):在编译源程序的时候,编译器会预处理,将未作拆箱和装箱工作的语句自动拆箱和装箱。可通过反编译器发现。
say(Integer.valueOf(a)); 自动装箱 num=i;// 引用类型变量怎么能复制给基本类型呢? //num=i.intValuse();// 自动拆箱
9 )包装类的一些常用功能:将字符串转换为其类型,方法是:parseXXX ,XXX 代表其类型。这里要特别注意!一定要保证待转换的字符串描述的确实是或者兼容要转换的数据类型!否则会抛出异常!
String numStr="123"; System.out.println(numStr+1);//1231
int num=Integer.parseInt(numStr); System.out.println(num+1)//124
long longNum=Long.parseLong(numStr); System.out.println(longNum);//123
double doubleNum=Double.parseDouble(numStr); System.out.println(doubleNum);//123.0
10)Integer 提供了几个有趣的方法:将一个整数转换为 16 进制的形式,并以字符串返回;将一个整数转换为2 进制的形式,并以字符串返回。
String bStr=Integer.toBinaryString(num); String hStr=Integer.toHexString(num);
11)所有包装类都有几个共同的常:获取最大、最小值。
int max=Integer.MAX_VALUE;//int 最大值 int min=Integer.MIN_VALUE;//int 最小值
System.out.println(Integer.toBinaryString(max)); System.out.println(Integer.toBinaryString(min));
|
|