包装类

本文深入探讨Java包装类的概念,解释如何将基本类型转换为包装类,以及包装类的构造方法、缓存机制和自动拆装箱过程。通过代码示例展示了如何使用包装类进行数据类型转换和比较。

包装类:用于将基本类型参与到面向对象的开发;将一个字符串转换为基本类型

包装类
基本类型包装类父类
bytejava.lang.Bytejava.lang.Number
shortjava.lang.Short
java.lang.Number
intjava.lang.Interger
java.lang.Number
longjava.lang.Long
java.lang.Number
doublejava.lang.Double
java.lang.Number
floatjava.lang.Float
java.lang.Number
charjava.lang.Character
java.lang.Object
boolean
java.lang.Boolean
java.lang.Object

Number类

存在intValue()、doubleValue()、UTFValue()方法,主要用于实现int和Interger之间的转化,返回一个int、doubleUTF值

同时ParseInt()、ParseDouble()、ParseUTF()方法将以字符串类型描述的int、double值转化为int、double类型、UTF类型的数值,是一个静态方法


包装类的构造方法:

(1)所有的包装类都可以用和它对应的基本类型数据作为参数,来构造它们的实例

(2)除Character类以外,其他包装类都可以用一个字符串座位参数来构造它们的实例,但是这个字符串不能为空,且必须可以解析为相对应的基本数据类型。

(3)Boolean类型用字符串座位参数时,若字符串的内容为true(无论大小写),Boolean表示的对象都为true

 

所有的包装类都是final类型,不可继承,对象不可改变

所有的包装类都覆盖了Object类型的toString(),以字符串的形式返回基本类型。


static void valueOf(String str)用于将字符串类型转换为当前类型,常见于自动拆装箱

在自动拆装箱时,各个包装类中都有一定的缓存,当我们自动拆装箱时,先在缓存中查找是否有这个值,如果有那么,只需创建一个对象,返回同一个对象,如果超出了缓存则需重新创建对象。跟常量池差不多。

各个类在包装类中的缓存
int-128-127
byte-128-127
short-128-127
long-128-127
char0-127
boolean-128-127
double和float

<span style="font-size:18px;"><span style="font-size:14px;">package com.blogs.yuan;
/**
 * 该类为了演示包装类
 * @author a
 *
 */
public class WrapperDemo {
	public static void main(String[] args) {
		int ii = 129;
		Integer integer = new Integer(ii);		//创建Integer对象,赋值为129
		System.out.println(integer == ii);		//true
		
		int j =  integer.intValue();			//将Integer类型转换为基本类型
		System.out.println(j == ii);			//true
		

		Integer i = 100;				//i装箱,相当于Integer i = Integer.valueOf(100)
		Integer  m = 100;
		System.out.println(i == m);		//true,i和m自动拆箱比较,i引用和m引用指向同一对象,100在缓存范围中
		i = 200;
		m = 200;
		System.out.println(i == m);		//false,200已经超出缓存范围了,故i,m装箱为了两个对象
		
		String string = "123";
		int a = Integer.parseInt(string);<span style="white-space:pre">	</span>//将字符串描述的纯数字转换为int类型
		System.out.println(string instanceof String);	//true
		System.out.println(a);			//这里的a为int基本类型,不能用intanceof判断
	}
}</span></span>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值