包装类

包装类

一、包装类:

1、包装类:

​ Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的。基本类型的数据不具备“对象”的特性(没有成员变量和成员方法可以调用),因此,Java为每种数据类型分别设计了对应的类,即包装类。

基本数据类型对应的包装类
byteByte
shortShort
intInteger
longLong
charCharacter
floarFloat
doubleDouble
booleanBoolean

2、包装类的特点:

  • 所有包装类都是final类型的,因此不能创建他们的子类。
  • 包装类是不可变类,一个包装类的对象自创建后,他所包含的基本类型数据就不能被更改。

3、装箱和拆箱:

  • 装箱:将基本数据类型变为包装类对象。
  • 拆箱:将包装类中包装的基本数据类型去出。
//基本数据类型----->包装类
@Test
public void test1(){
int num2 = 10;
Integer in1 = num2;//自动装箱
		
boolean b1 = true;
Boolean b2 = b1;//自动装箱
		
//自动拆箱:包装类--->基本数据类型
System.out.println(in1.toString());
		
int num3 = in1;//自动拆箱
 }
//包装类--->基本数据类型:调用包装类Xxx的xxxValue()
	@Test
	public void test2(){
		Integer in1 = new Integer(12);
		
		int i1 = in1.intValue();
		System.out.println(i1 + 1);
		
		
		Float f1 = new Float(12.3);
		float f2 = f1.floatValue();
		System.out.println(f2 + 1);
	}
//基本数据类型、包装类--->String类型:调用String重载的valueOf(Xxx xxx)
	@Test
	public void test3(){
		
		int num1 = 10;
		//方式1:连接运算
		String str1 = num1 + "";
		//方式2:调用String的valueOf(Xxx xxx)
		float f1 = 12.3f;
		String str2 = String.valueOf(f1);//"12.3"
		
		Double d1 = new Double(12.4);
		String str3 = String.valueOf(d1);
		System.out.println(str2);
		System.out.println(str3);//"12.4"
		
	}
//String类型 --->基本数据类型、包装类:调用包装类的parseXxx(String s)
	@Test
	public void test5(){
		String str1 = "123";
		//错误的情况:
//		int num1 = (int)str1;
//		Integer in1 = (Integer)str1;
		//可能会报NumberFormatException
		int num2 = Integer.parseInt(str1);
		System.out.println(num2 + 1);
		
		String str2 = "true1";
		boolean b1 = Boolean.parseBoolean(str2);
		System.out.println(b1);
	}

4、注:

Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer[],保存了从-128127范围的整数。如果我们使用自动装箱的方式,给Integer赋值的范围在,-128127范围内时,可以直接使用数组中的元素,不用再去new了。
目的:提高效率
//实例
Integer m = 1;
Integer n = 1;
System.out.println(m == n);//true

Integer x = 128;//相当于new了一个Integer对象
Integer y = 128;//相当于new了一个Integer对象
System.out.println(x == y);//false

5、包装类知识

  • Java中除了float和double的其他基本数据类型,都有常量池。
  • 包装类对象的初始值为null(是一个对象)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值