第23讲 包装类

包装类

包装类用来将基本类型封装成对象。

好处: 可以在对象中定义更多的功能方法操作该数据。

八种包装类除了Character类,都有其对应的static Xxx parseXxx(String s)方法。用来将字符串类型数据转为基本数据类型数据

使用键盘录入的时候,统一使用nextLine()接收数据,再将数据用parseXxx(String s)方法转换为需要的数据类型。

基本数据类型包装类
byteByte
shortShort
charCharacter
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean

获取包装类: 直接赋值即可。

Integer i = 10;
Character c = '0';
Boolean b = true;

装箱和拆箱

1 装箱

把基本数据类型转化为对应的包装类类型

Integer i = Integer.valueOf(100);

2 自动装箱

JDK5以后,Java底层会自动的将int类型转为Integer对象

// 底层也做了Integer.valueOf(100)获取Integer对象,只是这些代码被隐藏起来了
Integer ii = 100; 

3 拆箱

把包装类类型转化为对应的基本数据类型

Integer i = Integer.valueOf(100);
i = i.intValue() + 200; 

4 自动拆箱

JDK5以后,Java底层会自动的将Integer对象转为int类型

//  i + 200 -> 自动拆箱  ; i = i + 200 -> 自动装箱
i = i + 200; 

5 注意

  • 在使用包装类类型的时候,如果要做操作,要先判断是否为 null
  • 只要是对象,在使用前就必须进行 是否为null 的判断
//如果不进行判断
	Integer x = null;
	x += 100;	// NullPointerException 空指针异常

Integer 类

1 成员方法

方法说明
static String toBinaryString(int i)转为二进制
static String toOctalString(int i)转为八进制
static String toHexString(int i)转为十六进制
static int parseInt(String s)将字符串类型整数转为int类型整数

2 int 转 String

方法1:字符串连接(简单,但不专业)

int num = 100;
String s = "" + num;

方法2:public static String valueOf(类型 变量) //将指定类型的变量转成String类型

int num = 100;
String s  = String.valueOf(num);

3 String 转 int

方法1:String -> Integer -> int

String s = "100";
// String -> Integer 静态方法
Integer i = Integer.valueOf(s);
// Integer -> int 自动拆箱
int num = i;

方法2:public static int parseInt(String s) //将字符串类型整数转为int类型整数

String s = "100";
int y = Integer.parseInt(s);

JDK5以前获取包装类对象

JDK5以前获取Integer类对象的方法(了解)

public Integer(int value) //构造方法

public Integer(String value)

public static Integer valueOf(int i) //静态方法

public static Integer valueOf(String s)

构造方法与静态方法的区别(⭐)

1.构造方法是new出来的对象,每一次都是新的地址。

2.Integer类在底层会将在[-128, 127]之间的整数提前创建好对象放到一个数组中。而静态方法valueOf()的底层,会对传进来的数据进行判断,如果在[-128, 127]之间,则会返回已经创建好的对象。

public class Demo {
    public static void main(String[] args) {
        //构造方法
        Integer i1 = new Integer(127);
        Integer i2 = new Integer(127);
        Sout: i1 == i2;					//false
        
        Integer i3 = new Integer(128);
        Integer i4 = new Integer(128);
        Sout: i4 == i4;					//false
        
        //静态方法
        Integer i5 = Integer.valueOf(127);
        Integer i6 = Integer.valueOf(127);
        Sout: i5 == i6;					//true
        
        Integer i7 = Integer.valueOf(128);
        Integer i8 = Integer.valueOf(128);
        Sout: i7 == i8;					//false
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值