19.包装类

来源:互联网 发布:网络推广规划 编辑:程序博客网 时间:2024/06/05 08:11
1.Java中八种基本数据类型对应的包装类型:
基本数据类型                包装类型
byte java.lang.Byte;
short java.lang.Short;
int java.lang.Integer;
long java.lang.Long;
 
float java.lang.Float;
double java.lang.Double;


boolean java.lang.Boolean;


char java.lang.Character;


思考:Java中常用的八种数据类型不够用吗?为什么Java中还要提供对应的包装类呢?

       方便


public class HelloWorld {//需求:规定m1方法中可以接收Java中任意一种数据类型//m1方法如果想接收byte类型的数据,可以将byte类型先包装成java.lang.Byte,再传递参数public static void m1(Object o) {System.out.println(o);//    }public static void main(String[] args) {//基本数据类型Byte b = 10;//引用类型Byte b1 = new Byte(b);m1(b1);//10 Byte已经将Object中的toString方法重写}}


2.类层次结构



3.常用方法

/*以Java.lang.Integer类型为例,讲解八种类型  */public class HelloWorld {public static void main(String[] args) {//获取int类型的最大和最小值System.out.println(Integer.MAX_VALUE);System.out.println(Integer.MIN_VALUE);//创建integer类型的对象(基本数据类型-->引用类型)Integer i1 = new Integer(10);//int-->IntegerInteger i2 = new Integer("123");//String-->Integer//引用类型-->基本类型int i3 = i1.intValue();  //Integer -->intint age = Integer.parseInt("25");//String -->intdouble price = Double.parseDouble("34.6");//String-->double//进制转换String s1 = Integer.toBinaryString(10);//二进制String s2 = Integer.toOctalString(10);//八进制String s3 = Integer.toHexString(10);//十六进制Integer i4= 10;//自动装箱int i5 = i4;//自动拆箱 }}

4.深入自动装箱与自动拆箱

/*自动装箱和自动拆箱是程序编译阶段的一个概念,和程序运行无关目的是方便程序员的编码  */public class HelloWorld {public static void main(String[] args) {Integer i1 = new Integer(10);Integer i2 = new Integer(10);//这里不会自动拆箱System.out.println(i1 == i2);//false//比较两个Integer类型的数据是否相等,不能用 ==//Integer已经重写了Object中的equals方法System.out.println(i1.equals(i2));//true//重点:如果数据是在(-128~127)之间,Java引入一个“整形常量池”//这个区间的值不会在堆创建对象,直接从整形常量池中拿Integer i3 = 128;Integer i4 = 128;   //上面的等同于Integer i3 = new Integer(128);  //Integer i4 = new Integer(128);System.out.println(i3 == i4);//falseInteger i5 = 127;Integer i6= 127;System.out.println(i5 == i6);//true }}