【附章4包装类】包装类的顶级理解

❤写在前面
❤博客主页:努力的小鳴人
❤系列专栏:JavaSE超详总结😋
❤欢迎小伙伴们,点赞👍关注🔎收藏🍔一起学习!
❤如有错误的地方,还请小伙伴们指正!🌹

类的关系图:
在这里插入图片描述


一、分类

基本数据类型 — 包装类
byte — Byte
boolean — Boolean
short — Short
char — Character
int — Integer
long — Long
float — Float
double — Double

除了Integer 和Character 外,其它六个类类名和基本数据类型一致,只需将第一个字母大写 即可

二、作用

有时方法需传递一个Object类变量时,传递int类型编译不通过,这时需为包装类
例:
public void test(Object o){
}
需传递数值9时为:
test(new Integer(6));

  1. 可以通过包装类的构造函数基本数据类型转换为包装对象「装箱」
    Boolean(boolean value)
    Character(char value)
    Integer(int value)
    Long(long value)
    Float(float value)
    Double(double value)
  2. 可以通过××Value()方法将将包装类对象转换为基本数据类型「拆箱」
    intValue()
    longValue()
    floatValue()
  3. 除Character之外,包装类都存在valueOf()方法:用于将字符串转成相应的包装类
  4. 包装类都存在toString()方法:将包装类转换成对应的字符串
    举例代码:
public class Test {
    public static void main(String[] args) {
        //基本数据类型转换成包装类对象
        //「装箱」
        Integer a1 = new Integer(2);//方式一
        
        Integer a2 = Integer.valueOf(3); //方式二:推荐
        System.out.println("a1-->" + a1);
        System.out.println("a2-->" + a2);

        //把包装类对象转成基本数据类型
        //「拆箱」
        int b1 = a1.intValue();
        double b2 = a1.doubleValue();
        System.out.println("b1-->" + b1);
        System.out.println("b2-->" + b2);

        //把字符串转成包装类对象
        Integer c1 = new Integer("12");
        Integer c2 = Integer.valueOf("1256");
        System.out.println("c1-->" + c1);
        System.out.println("c2-->" + c2);

        //包装类转成字符串
        String d1 = c1.toString();
        System.out.println("d1-->" + d1);

        //包装类里定义的常用属性常量
        System.out.println("最大的int:"+ Integer.MAX_VALUE);
        System.out.println("最小的int:"+ Integer.MIN_VALUE);
    }
}

🎁注:除Character之外,每个包装类都有将字符串转换为基本数据类型的方法

🔥Character包装类的常用方法

●Character.isLetter('a'); //判断这个字符是否为英文字母
●Character.isDigit('1'); //判断这个字符是否为数字
●Character.isUpperCase('A'); //判断这个字符是否为大写
●Character.isLowerCase('a'); //判断这个字符是否为小写
●Character.isWhitespace(' '); //判断这个字符是否为空格或回车

三、自动装箱与自动拆箱

autoboxing 与 unboxing
在JDK1.5之前,Integer i = 5是错误的

  1. 自动装箱
    在JDK1.5之后,Integer i = 5可以实现基本数据转换成包装类,是因为JVM执行了Integer i = Integer.valueOf(5)的操作
  2. 自动拆箱
    类似地JVM也可以将一个对象拆箱转换为基本数据类型,不用再显式调用intValue()等方法

代码如下:

public class Demo02 {
    public static void main(String[] args) {
        //自动装箱
        Integer i = 7; //Integer i = Integer.valurOf(7);
        System.out.println(i); //7
        //自动拆箱
        i = i + 9;  //int i = i.intvalue();
        System.out.println(i); //16
    }
}

四、缓存区

提高效率
以Integer为例,在自动装箱时,,在类加载时已经为在-128~127区间内的每个数值创建了对象,并将这256个对象存放在cache[]数组中。当自动装箱过程发生时或手动调用valueOf()时,首先会先判断是否在该区间如果在,就直接获取数组中对应的包装类对象引用;如果不在,则通过new调用包装类的构造方法来创建对象

  1. Integer、Byte、Short、Long、Character都有缓存区
  2. Double、Float没有缓存区
  3. Boolean也有缓存区,缓存在了两个静态常量(TRUE/FALSE)中;

🎁总结:包装类后期很有用,整理下多看看,很不错
👌 作者算是一名Java初学者,文章如有错误,欢迎评论私信指正,一起学习~~
😊如果文章对小伙伴们来说有用的话,点赞👍关注🔎收藏🍔就是我的最大动力!
🚩不积跬步,无以至千里书接下回,欢迎再见🌹

  • 27
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 33
    评论
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

努力的小鳴人

鳴人将永远记住您的恩惠

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

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

打赏作者

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

抵扣说明:

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

余额充值