前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java八大常用类(二) 包装类

Java八大常用类(二) 包装类

作者头像
卢衍飞
发布2023-02-14 13:57:52
2270
发布2023-02-14 13:57:52
举报
文章被收录于专栏:技术分享交流

常用类 1 包装类 引入 包装类均位于java.lang 包

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

(1)某些方法的参数必须是对象,为了让基本数据类型的数据作为参数,提供包装类

(2)包装类还可以提供更多功能

(3)其他的特别重要的功能:比如可以实现字符串和基本数据类型之间的转换

package oop2.demo05;

代码语言:javascript
复制
/*
包装类的作用
 */

public class TestA {

代码语言:javascript
复制
public static void main(String[] args) {
    String a = "10";

    int aa = 10;   //基本数据的类型
    Integer bb = new Integer(10);   //包装类表示的数据

    int i = Integer.parseInt(a);    //把String类型的数据转成int类型,a被转成int类型并存入i中
    int c = i * aa;           //

    //   Integer.parseInt()    常用:转化为int型
    //    Double.parseDouble()    转为为double型,其他的以此类推

    System.out.println(i);
    System.out.println(c);

    System.out.println(Integer.SIZE);    //32

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

}

} 自动装箱、自动拆箱 自动装箱 基本数据类型 ---> 包装类 自动拆箱 包装类---> 基本数据类型

package oop2.demo05;

//基本类型的数据和包装类之间的相互转化 public class TestB {

代码语言:javascript
复制
public static void main(String[] args) {
    int aa = 10;
    Integer bb = new Integer(aa);    //把基本的数据类型转为包装类

    int cc = bb.intValue();    //把包装类转成基本类型

   /*
    自动装箱   基本数据类型 ---> 包装类
    自动拆箱   包装类---> 基本数据类型
     */

    int a = 10;
    Integer b = a;     // 这是JDK的自动装箱  底层使用的是Integer.valueOf() 完成自动装箱过程

    int c = b;   //自动拆箱
                // 底层使用intValue()完成自动拆箱的过程

}

} 自动装箱、自动拆箱的使用 注意:

JDK1.5 以后,增加了自动装箱和自动拆箱的功能。 自动装箱调用valueOf() 方法,而不是new Integer()方法 自动拆箱调用xxxValue() 方法 包装类在自动装箱时,为了提高效率,对于-128~127之间的值会进行缓存处理。超过范围后,对象之间不能再使用==进行数值比较,而是使用equals方法 package oop2.demo05;

public class TestC {

代码语言:javascript
复制
public static void main(String[] args) {
    int a = 10;
    Integer b = 10;   //自动装箱
    System.out.println(a==b);            //自动拆箱   ture     b拆箱
    System.out.println(b.equals(a));     //自动装箱   ture     a装箱,判断a的值是否与b的值相同

    //==================================================================================

    Integer aa = new Integer(10);
    Integer bb = new Integer(10);

    System.out.println(aa == bb);        //False  aa与bb同一类型,不发生拆箱装箱。new两次Integer 缓存的物理地址不一样
    System.out.println(aa.equals(bb));   //true

    //======================================================================================

    Integer aaa = 122;    //自动装箱         在-128~127之内
    Integer bbb = 122;    //自动装箱

    System.out.println(aaa == bbb);         //true     aaa和bbb在-128~127之内,,此种写法,他们是同一类型,同一对象
    System.out.println(aaa.equals(bbb));    //true

    //======================================================================================

    Integer aaaa = 233;        //在-127~128之外,同一类型,同一对象
    Integer bbbb = 233;
    System.out.println(aaaa==bbbb);   //false   aaa和bbb在-128~127之外,相当于new两次Integer,导致了他们的物理地址不一致
    System.out.println(aaaa.equals(bbbb));   //这种情况下,只比较值大小是否相等,只能用equals方法

}

}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023 年 01 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档