java中的包装类是什么,包装类,java中什么时候用包装类

包装类,java中什么时候用包装类

首先思考一个问题:为什么要存在 包装类?

Java是语言一门纯面向对象的编程语言,万物皆对象!

如:

int num = 30;     // int是基本数据类型

Person p = new Person( );

在某些特殊场合中,如集合中:集合要求放入的所有数据都必须是对象(即,引用类型)。

而对于基本类型的数据来说,这并不满足是对象的要求:因此不能直接将 基本数据类型的数据 放入到集合中。

为了能够放入该类数据,就要对这些基本数据类型进行对象化处理,于是需要借助 包装类。

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     类

char          →        java.lang.Character  类

boolean    →        java.lang.Boolean     类

Integer 类  (重点)

1. 概述:

java.lang.Integer类 被 final修饰,表示该类不能被继承。该类的内部包装了一个int类型的数据。

2. 常用方法:

Integer(int value)    -采用参数指定的整数来构造对象

Integer(String str)   -采用参数指定的字符串来构造对象

static int parseInt(String str) -用于将字符串转换为 int类型的整数。(静态方法使用 类名.的方式调用)

int intValue()           -将Integer类型对象中的整数值返回

3. 装箱 和 拆箱   (从JDK1.5开始,支持自动装箱 和 自动拆箱 功能)

装箱就是指 从基本数据类型 转换成 引用数据类型;  如: int  ===> Integer

拆箱就是指 从引用数据类型 转换成 基本用数据类型;  如:Integer ===> int

4. 自动装箱池

从JDK1.5开始,支持自动装箱 和 自动拆箱 功能,为了提高装箱的效率,Integer类的内部还提供了一个自动装箱池,

里面放好了  -128  ~ 127 之间的数据对象。当程序中需要对该范围中的数据进行装箱时,直接从装箱池中获取。超出该范围的数据,才需要创建新的对象。

代码演示:

public classIntegerTest {public static voidmain(String[] args) {//根据参数指定的int类型来构造Integer类型的对象//int ==> Integer类型 : 装箱 操作 (手动)

Integer it1 = new Integer(123);

System.out.println("字符串类型的it1---"+it1);//将Integer类型对象中的整数值返回//Integer类型 ==> int : 拆箱 操作 (手动)

int res =it1.intValue();

System.out.println("int类型的it1-------"+res);

System.out.println("---------------------------------");//int 数据类型 ==> Integer类型,

Integer it2 = 456; //这里Integer能够直接 接收一个 int数据类型:是因为jdk1.5之后实现了自动装箱功能

System.out.println("字符串类型的it2---"+it2);//Integer 数据类型 ==> int 类型,

res = it2; //

System.out.println("int类型的it2-------"+res);

System.out.println("---------------------------------");

Integer it3= 127;

Integer it4= 127;

Integer it5= new Integer(127);

Integer it6= new Integer(127);//此时 it3 ,it4 都是Integer类型

System.out.println("it3 == it4 ?----" +(it3 == it4)); //== 用于比较 引用类型时,比较的是对象的地址 127 在 [-128, 127]自动装箱的数据范围之内,所以127来自自动装箱池

System.out.println("it3.equals(it4)----"+(it3.equals(it4))); //Integer类重写了Object的equals()方法,用于比较两个对象的内容是否一致,it3,it4都是127//此时it5, it6 都Integer类型

System.out.println( "it5 == it6 ?----" +(it5 == it6)); //== 用于比较 引用类型时,比较的是对象的地址 it5 ,it6都是通过new出来的,是两个不同的对象。

System.out.println("it5.equals(it6)----"+(it5.equals(it6))); // //Integer类重写了Object的equals()方法,用于比较两个对象的内容是否一致,it3,it4都是127

System.out.println("---------------------------------");//同理 it7, it8 都Integer类型

Integer it7 = 128;

Integer it8= 128;

System.out.println("it7 == it8 ?----" +(it7 == it8)); //比较对象地址 但是,128不在自动装箱池的数据范围之内。

System.out.println("it7.equals(it8)----"+(it7.equals(it8))); //比较内容

}

}

结果;

字符串类型的it1---123int类型的it1-------123

---------------------------------字符串类型的it2---456int类型的it2-------456

---------------------------------it3== it4 ?----trueit3.equals(it4)----trueit5== it6 ?----falseit5.equals(it6)----true

---------------------------------it7== it8 ?----falseit7.equals(it8)----true

常用方法代码测试:

public classIntegerTest {public static voidmain(String[] args) {//使用参数指定的整数来构造对象

Integer it1 = new Integer(123);

System.out.println("自动调用toString()方法 打印it1 = "+it1); //自动调用toString()方法

System.out.println("获取包含的整数值: "+it1.intValue()); //获取包含的整数值 123//使用参数指定的字符串来构造对象

Integer it2 = new Integer("456");

System.out.println("自动调用toString()方法 打印it2 = "+it2); //自动调用toString()方法

System.out.println("获取包含的整数值: "+it2.intValue()); //获取包含的整数值值 456//将字符串转换为整数

int parseInt = Integer.parseInt("789");

System.out.println("将字符串转换为整数:"+parseInt);//将整数转换为 二进制形式 的字符串

String binaryString = Integer.toBinaryString(-1);

System.out.println("将整数转换为 二进制形式 的字符串: "+binaryString);// //将整数转换为 二进制形式 的字符串

String hexString = Integer.toHexString(-1);

System.out.println("将整数转换为 二进制形式 的字符串: "+hexString);

}

}

结果:

自动调用toString()方法 打印it1 = 123获取包含的整数值:123自动调用toString()方法 打印it2= 456获取包含的整数值:456将字符串转换为整数:789将整数转换为 二进制形式 的字符串:11111111111111111111111111111111将整数转换为 二进制形式 的字符串: ffffffff

http://www.dengb.com/Javabc/1376966.htmlwww.dengb.comtruehttp://www.dengb.com/Javabc/1376966.htmlTechArticle包装类,java中什么时候用包装类 首先思考一个问题:为什么要存在 包装类? Java是语言一门纯面向对象的编程语言,万物皆对象! 如:...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值