Java包装类

Java包装类

什么是包装类

Java基本的知识是大二学的,当时是网课的形式,一节课都没有听过,练习题和考试都是根据C++的记忆混过去的,现在幡然醒悟决定好好看一看Java,所以今天就遇到了一个很常见的问题,刷牛客上的Java练习题目的时候有一道关于Integer和int区别的题目,因为不是很懂,所以搜了搜资料,决定写下这篇博客,有什么错误欢迎大家指正。

首先,这个包装是针对基本数据而言的,那么什么是基本数据类型呢,这个大家应该门儿清,总共有八种,

分别是int,short,long,float,double,char,byte,boolean

基本数据类型不是类类型,所以它们没有对应的实例,也没有对应的各种各样的功能。而且,如果我们不为其赋初值的话,书本数据类型变量是有默认值的,那么它就不能为空值,而且java 在某些场景中是不能用基本数据类型而只能使用对象的,所以java引入了包装类这个概念。

这八种数据类型都有各自的包装类

基本数据类型默认值所占字节大小对应包装类
short02Short
int04Integer
long08Long
float0.0f4Float
double0.0d8Double
char‘\u0000’2Character
byte01Byte
booleanfalse1(bit)Boolean

而之所以管他们叫包装类,而不叫类,那肯定是有原因的,的确,包装类和普通类有不一样的地方,首先,他们在初始化的时候既可以用New来创建实例,也可以像基本数据类型那样直接赋值,像这样:
Integer a2=3;
Integer a3=new Integer(3);

其次,以Integer包装类为例,Integer包装类中含有两个重要方法,分别是intValue()和valueOf()方法。它们有什么用,我写了点东西,这里大家自行体会

Integer x1=new Integer(3);
Integer x2=new Integer(3);
System.out.println(x1==x2);//false
System.out.println(x1.intValue()==x2.intValue());//true
String a="1024";
System.out.println(1024==Integer.valueOf(a));//true
System.out.println(1024f==Float.valueOf(a));//true
System.out.println("1024"==String.valueOf((int)1024));//false

我的理解是intValue()就是用来返回与包装类同类型的基本数据类型变量,比如这里的x1本来是Integer型的,x1.intValue()就成了int类型,同理还有x1.floatValue()是float型等等。而valueOf(s)则是被多个包装类重写了的方法,如Integer.valueOf(s)的作用是返回一个由参数代表的Integer对象,参数可以是一个字符串或者int型数据,Float.valueOf(s)同理。当然还有一种形式的参数列表是(String s,int radix),有兴趣大家可以自己查资料了解其区别

这里值得注意的一点是String类(非包装类)也重写了valueOf方法,由以下几种:
String.valueOf(object)
String.valueOf(char[])
String.valueOf(基本数据类型)

以下还有一段我自己测试的代码供大家参考:

String s1="1024";
String s2="1024";
String s3=new String("1024");
String s4=new String("1024");
System.out.println("1024"=="1024");//true
System.out.println(s1==s2);//true
System.out.println(s3==s4);//false
System.out.println("1024"==String.valueOf(1024));//false
System.out.println("1024".equals(String.valueOf(1024)));//true

好啦,博客就写道这里,这就是我对Java基本数据类型装箱的一些粗浅的理解,最后再次欢迎大家的批评指正,若能为小弟答疑解惑的话,才是最好的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr. me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值