Java基本数据类型的包装类

一.包装类

        Java的8种基本类型boolean,byte,short,char,int,long,float,double都不具备对象特征:没有对象的属性,也没有对象的方法可以调用。

        但Java提供了8中基本数据类型对应的对象类型,这些类型叫做包装类。

1.概述

        在Java中提供了两种类型系统,基本类型与引用类型。基本类型在于提高效率,引用类型可以提供更多功能,如果我们想要基本类型像对象一样操作,我们就可以使用基本类型对应的包装类

        例如:我们可以利用Integer中的静态方法parseInt将字符串整数转变为int类型;我们可以利用Character中的isLowerCase判断字符是否是小写字母等等...

        Java中一共定义了8种基本数据类型,其分别对应的包装类如下:

05e1f0faa62c41fd8a879bbe0d94ba20.png
 

2.装箱与拆箱

        基本数据类型与其对应的包装类之间来回转换的过程称为装箱与拆箱

①装箱

        从基本数据类型转换为对应的包装类对象

        例如我们可以这样写:其中a是int类型,而b是一个Integer类型,我们把基本类型的数据转换为包装类对象的过程,叫做装箱

int a=67;//int类型
Integer b=new Integer(a);//Integer类型

②拆箱

        同理,我们将包装类对象转换为对应的基本数据类型的过程称为拆箱

③自动装箱与拆箱

        由于我们经常要做基本类型与包装类之间的转换,因此在JDK1.5以后的版本中,Java支持自动装箱和自动拆箱,基本类型与包装类的装箱拆箱动作可以自动完成

Integer a=67;//将int类型转换为Integer类型
int b=a;//将Integer类型转换为int类型

3. 常用包装类

(一)Integer类

        Integer类是int类型对应的包装类,是Java.lang包下的,因此我们在使用时不需要导包

⑴构造方法

977d6aaf7bae43eeae167bdb41ff0e4d.png

⑵常用方法

        在Integer类中定义了两个常量MAX_VALUE和MIN_VAKUE,分别表示int类型的最大值和最小值,也是平时我们经常使用的

ea75b6cc5b704317945971f2a0ef4323.png

 

1872ccd623c74d018f240360657ad951.png

①valueOf()

表示静态获取Integer对象(常用)

如图:通过方法的底层代码,最终方法返回的也是构造方法

76eb183a1d4a4f70b2bcc226a666ea41.png

细节:

细看源码,if语句里面返回的不是构造方法!

我们定位看看其中的low与high是什么?

如图:根据这三个常量我们可以知道valueOf方法中if语句的含义:若数据在int范围之内,返回Integer数组中的值

ba2c3f9fa9254a659fcbdf834025ef6f.png

        在Java进行自动装箱的时候,包括Byte,Short,Integer,Long四个类,球会在内存中自动创建256个对应类的对象,其中的数值从-128到127

因此在-128到127范围之内的数据都是已经创建好的对象,在获取时不会再创建新的对象

因此你知道下面sout语句打印的答案吗?

ae39411406be42118a6b4d6da4f1201f.png

②parseInt

        paseInt是一个我们比较常用的方法,除了Character类,其他所以包装类都具有parseXxx静态方法,可以将字符串参数转换为对应的基本类型

    System.out.println(Integer.parseInt("11"));//十进制下的 11
    System.out.println(Integer.parseInt("12",3));//将3进制下的12转换为十进制5

其余方法如图演示:

e89dd98b5db74bf7971366f90f57364f.png

 (二)Character类

Character 类在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。

此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。

以下方法不做演示

998c1be8bf2f49fca34aff3228f61887.jpeg

4.基本数据类型与其包装类之间的来回转换

        虽然基本类型与其包装类之间既可以自动转换,也可以我们手动进行转换,但基本类型数组与对应包装类数组的转换却不能自动进行转换,这要我们手动进行转换

        若想要知道有没有方法可以让数组进行转换,可以参考下面文章:

https://blog.csdn.net/m0_74808313/article/details/132842634

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

汤姆大聪明

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

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

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

打赏作者

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

抵扣说明:

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

余额充值