JavaSE——包装类、装箱与拆箱
创始人
2024-01-21 18:49:19
0

目录

一、基本概念

1.1 八种包装类及使用场景

1.2 装箱与拆箱的概念

二、以Integer包装类为例

 2.1 Integer的构造方法

 2.2 通过常量获取最大值与最小值

 2.3 自动装箱和自动拆箱(非常重要的面试题)

三、Integer常用方法

    3.1 手动拆箱(过时)

    3.2 静态方法  int parseInt(String)

    3.3  静态方法 十进制转化为二进制字符串

    3.4  静态方法 十进制转化为十六进制字符串

    3.5  静态方法 十进制转化为八进制字符串

四、 String int Integer 类型互换


一、基本概念

 1.1 八种包装类及使用场景

   java中八种基本数据类型对应八种包装类型,属于引用数据类型,父类是java.lang.Number,间接继承Object(除了Character、Boolean以外,Character、Boolean直接继承Object)

  使用场景:

    调用某个方法需要传入一个数字,但是数字是基本数据类型,但是方法的参数是Object引用类型,此时便需要包装类

    简言之:八种基本类型不够用,又引入八种基本类型对应的八种包装类型,如下所示

1.2 装箱与拆箱的概念

  装箱:基本数据类型转化为引用数据类型

  拆箱:引用数据类型转化为基本数据类型

  我们首先看一下Number类中的拆箱方法,这些方法子类都有

二、以Integer包装类为例

    以Integer类为例,其他是一模一样

   2.1 Integer的构造方法

 如下图所示,当我们使用Integer类时,有下面两个构造方法,分别可传入int类型参数、String类型参数

   本类的toString方法也已经给我们重写好了,不比我们再写

//      直接使用数字    从JDK9(Java9)之后便过期了Integer x = new Integer(100);System.out.println(x);
//      String类型数字Integer y = new Integer("555");System.out.println(y);

 2.2 通过常量获取最大值与最小值

      这两个都是静态属性,其他的类也是这么调用

        System.out.println(Integer.MAX_VALUE);System.out.println(Integer.MIN_VALUE);

 2.3 自动装箱和自动拆箱(非常重要的面试题)

 好消息:JDK1.5(java5)之后,支持自动拆箱与自动装箱

自动装箱:基本类型类型自动转化为包装类 (底层还是new了一下,依然是引用)

自动拆箱:包装类自动转化为基本类型 (Number类的方法就用不着了,因为可以直接拆箱)

更好的方便了编程,解放程序员的双手

//   自动装箱Integer x=100;
//   自动拆箱int y =x;

说明:“==”不会触发自动拆箱机制,只有加减乘除时才可触发

 但是!!!下面这个地方很重要

        Integer a=128;Integer b=128;System.out.println(a==b);Integer x=127;Integer y = 127;System.out.println(x==y);

这里就有一个问题,为什么“==”不可触发,但是第二个输出是true呢?

 -128~127 这段数字在开发中使用的比较多,这个地方有一个整数型常量池,如果没有超过byte的取值范围,就会存储到整数型常量池中,所以在使用-128~127时就不会new对象了,但是128超出了byte取值,所以a,b在使用时会创建对象,在x,y中,保存的内存地址相同所以为true

三、Integer常用方法

    3.1 手动拆箱(过时)

        Integer x = new Integer(1000);int y = x.intValue();

 

     3.2 静态方法  int parseInt(String)

  int value = Integer.parseInt("123");

   使用情景:

 

      3.3  静态方法 十进制转化为二进制字符串

        String s = Integer.toBinaryString(3);System.out.println(s);

  3.4  静态方法 十进制转化为十六进制字符串

        String s = Integer.toHexString(20);System.out.println(s);

 

下面这段代码也能看懂了

 

3.5  静态方法 十进制转化为八进制字符串

        String s = Integer.toOctalString(8);System.out.println(s);

 

四、 String int Integer 类型互换

 

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...