栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java包装类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java包装类

Java包装类 一.什么是包装类

包装类继承结构图

二.包装类应用场景

1、集合类泛型只能是包装类;

// 编译报错
List list1 = new ArrayList<>();

// 正常
List list2 = new ArrayList<>();

2、成员变量的默认值;

private int status; //基本数据类型 默认为0
private Integer status; //包装类型 默认为null

基本数据类型的成员变量都有默认值,如以上代码 status 默认值为 0,因为代码编写的问题,在赋值过程中 ,没有进行处理null值,就给status赋值了,那样就可能会出现问题,为了避免这样问题出现,只能使用包装类 Integer,它的默认值为 null,所以就不会有默认值影响,也就省掉了去处理null的麻烦了.

3、方法参数允许定义空值;

private static void test1(int status){//不可以传null
    System.out.println(status);
}

private static void test1(Integer status){//可以传null
    System.out.println(status);
}

看以上代码,方法参数定义的是基本数据类型 int,所以必须得传一个数字过来,不能传 null,很多场合我们希望是能传递 null 的,所以这种场合用包装类比较合适。


注意.包装类是对象.所以在使用==比较的是地址 如果需要比较值的话那么使用包装类中的,equals 用法和String中的equals一样,当然也是可以使用Objects.equals()的

所有包装类里的方法基本相同 ,所以下面案例只拿几种来演示

三.自动装箱、拆箱

装箱:基本数据类型转换为包装类;

拆箱:包装类转换为基本数据类型。

 //1.自动装箱
        int t1=1;
        Integer t2=t1;
 //2.手动装箱
        Integer t3=new Integer(t1);
        System.out.println("int类型t1="+t1);
        System.out.println("自动装箱,Integer类型对象t2="+t2);
        System.out.println("手动装箱,Integer类型t3="+t3);


//1.自动拆箱
        int t4=t2;
 //2.手动拆箱
      //通过intValue()方法返回int值,还可以利用其他方法装换为其他类型
        int t5=t2.intValue();
        System.out.println("自动拆箱,int型t4="+t4);
        System.out.println("手动拆箱,int型t5="+t5);
四.基本数据类型,字符串和包装类的转换

通过包装类Integer.toString()–将整型转换为字符串;

通过Integer.parseInt()–将字符串转换为int类型;

通过valueOf()–把字符串转换为包装类然后自动拆箱

//基本数据类型转换为字符串
        int t1=12;
        String t2=Integer.toString(t1);
        System.out.println("int转换为String:"+t2);
//字符串转换为基本数据类型
        //通过paerInt方法  将字符串转为int 
        int t3=Integer.parseInt(t2);
        //通过valeOf,先把字符串转换为包装类然后通过自动拆箱 转换为int
        int t4=Integer.valueOf(t2);
        System.out.println("t3:"+t3);
        System.out.println("t4:"+t4);
五.包装类缓存概念

Java为了提高拆装箱效率,在执行过程中提供了一个缓存区(对象池)【类似于常量数组】如果传入的参数是,-128 ~127 会直接去缓存查找数据,如果有久直接产生,如果没有就隐式调用new方法产生

Integer three=100;
// 这时缓存区没有,就会构造一个
Integer four=100;
//这时缓存区有,就会直接取
 Integer five=200;
//这里为200,超出了缓存区范围,所以就会隐式 new Integer(200) 
六.整形进制转换

Integer 和 Long

toBinaryString(int i) //转2进制
Integer.toHexString(int i) //转16进制
Integer.toOctalString(int i)//转 8进制  
点赞 -收藏-关注-便于以后复习和收到最新内容
有其他问题在评论区讨论-或者私信我-收到会在第一时间回复
如有侵权,请私信联系我
感谢,配合,希望我的努力对你有帮助^_^

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297726.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号