常用类2(包装类)-第一阶段-第十二天-2021-07-28

本文详细介绍了Java中的包装类型,包括它们的特性、创建方式、自动封箱拆箱机制以及与基本数据类型和String之间的转换。特别强调了valueOf方法在[-128,127]范围内创建相同值对象时会返回相同引用的特性。

包装类型

出现的理由:
java是一个纯面向对象的语言,但是在java中存在基本数据类型(四类八种),它其实是没有直接或者间接的继承Object类的,因此没有类的一些功能,所以如果出现以下方法:

public Static void Test(Object obj){
	System.out.println("传入了" + obj.toString())
}

那么将不能传入基本数据类型

包装类型分为八种:Byte、Short、Integer、Long、Float、Double、Character、Boolean

1. 包装类型的特征

  1. 包装类型的数值用private final修饰,表示值已经不可被改变(private是只允许内部访问,final是让其值不可变)
  2. 包装类都被final修饰,表示不可被继承

2. 包装类的创建语法(封箱)

//通过new的方式创建对象
Integer in1 = new Integer("10");
//通过静态方法valueOf来创建对象
Integer in2 = Integer.valueOf("10");

这两种方式都是类的引用地址指向某个对象,但是他们之间有区别

Integer in1 = new Integer("10");
Integer in2 = new Integer("10");
System.out.println(in1 == in2)//false   比较的是地址值
Integer in3 = Integer.valueOf("20");
Integer in4 = Integer.valueOf("20");
Integer in5 = Integer.valueOf("128");
System.out.println(in3 == in4);//true
System.out.pirntln(in4 == in5);//false

通过上面的例子可以发现在[-128,127]之间通过静态方法valueOf()来创建对象,只要值一样会有相同的引用地址。

3.将引用类型的包装类转为基本数据类型(拆箱)

Integer in1 = new Integer("10");
int i = in1.intValue();

4.自动封箱拆箱

在jdk1.5之后提供了自动封箱和装箱的操作

//自动封箱
Integer in1 = 111;
//自动拆箱
int i = in1;

5. 基本数据类型与String类型的相互转换

5.1 String类型转化为基本数据类型

包装类的构造方法提供了String形参的方式,变相的进行类型的转换
在这里插入图片描述

String a = "1234";
Integer in = Integer.valueOf(a);
int i1 = in.intvalue();//手动拆箱
System.out.println(++i1);//1235
int i2 = Integer.valueOf(a);//自动拆箱
System.out.println(++i2);//1235

int i3 = Integer.parseInt(a)

5.2 基本数据类型转化为String类型

int a = 123;
//通过“+”操作来实现对基本数据类型的转换
String str1 = a + "";
//通过toString方法实现对基本数据类型的转换
String str2 = Integer.toString(a);
//通过String的静态方法valueOf实现类型的转换
String str3 = String.valueOf(a);
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值