前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >包装类应用

包装类应用

作者头像
Breeze.
发布2022-04-23 08:50:10
发布2022-04-23 08:50:10
45600
代码可运行
举报
运行总次数:0
代码可运行

包装类

包装类与基本数据类型

装箱与拆箱

装箱

装箱:把基本数据类型转换成包装类

  1. 自动装箱
代码语言:javascript
代码运行次数:0
运行
复制
int a1=10;
Integer a2=a1;
  1. 手动装箱
代码语言:javascript
代码运行次数:0
运行
复制
Integer a3=new Integer(a2);
  1. 测试结果
代码语言:javascript
代码运行次数:0
运行
复制
int类型变量a1=10
Integer类型对象a2=10
Integer类型对象a3=10

拆箱

拆箱:把包装类转换成基本数据类型

  1. 自动拆箱
代码语言:javascript
代码运行次数:0
运行
复制
int a4=a2;
  1. 手动拆箱
代码语言:javascript
代码运行次数:0
运行
复制
int a5=a2.intValue();
  1. 测试结果
代码语言:javascript
代码运行次数:0
运行
复制
Integer类型对象a4=10
自动拆箱后:int类型a4=10
手动拆箱后:int类型a5=10

基本数据类型与包装类的比较

在包装类与基本数据类型的使用,几点需要注意:

  1. 类型特点:包装类是引用数据类型,拥有方法和属性;基本数据类型只包含数值信息。
  2. 存储方式:包装类型对象实例化,借由new在堆空间里进行空间分配,对应栈空间中存储地址引用;基本数据类型变量对于栈空间中存储的是具体数据类型。
  3. 初始值:基本数据类型有各自默认初始值,包装类的对象未初始化时。初始值均为null

基本数据类型和字符串之间的转换

基本数据类型转换为字符串

  1. 通过包装类.toString()方法进行转换
代码语言:javascript
代码运行次数:0
运行
复制
int t1=2;
String t2=Integer.toString(t1);

测试

代码语言:javascript
代码运行次数:0
运行
复制
int类型转换为String类型对象t2=2

字符串转换为基本数据类型

  1. 通过包装类prase
代码语言:javascript
代码运行次数:0
运行
复制
int t3=Integer.parseInt(t2);
  1. 通过包装类valueOf,先将字符串转换为包装类、再通过自动拆箱进行转换
代码语言:javascript
代码运行次数:0
运行
复制
int t4=Integer.valueOf(t2);

测试

代码语言:javascript
代码运行次数:0
运行
复制
String类型转换为int类型变量t3的值:10
String类型转换为int类型变量t4的值:10

基本数据类型初始值

知识点一

代码语言:javascript
代码运行次数:0
运行
复制
public class Cat {
    String name;
    int month;
    double weight;

    public static void main(String[] args) {
        //实例化对象
        Cat one=new Cat();
        System.out.println("小猫的名字:"+one.name);
        System.out.println("小猫的年龄:"+one.month);
        System.out.println("小猫的体重:"+one.weight);
    }
}

结果

改为Integer、Double

知识点二

代码语言:javascript
代码运行次数:0
运行
复制
public class WrapperTest {
    public static void main(String[] args){
        Integer one=new Integer(100);
        Integer two=new Integer(100);
        System.out.println("one == two的结果:"+(one == two));//1 对象比对的时内存空间

        Integer three=100;//自动装箱
        //Integer three=Integer.valueOf(100);
        System.out.println("three == 100的结果:"+(three == 100));//2 自动拆箱

        Integer four=100;
        //Integer four=Integer.valueOf(100);
        System.out.println("three == four的结果:"+(three == four));//3

        Integer five=200;
        System.out.println("five == 200的结果:"+(five == 200));

        Integer six=200;
        //Integer six=new Integer(200);
        System.out.println("six == five的结果:"+(six == five));
    }
}

比较时会先在对象缓存区查找-128到127的值,有就会直接用,没有会通过new的方式去构造一个

知识点三

除了float、double其他都可以应用对象常量池概念

总结

通过包装类来解决基本数据类型不具有对象化的能力,因此每一种数据类型都有对应的包装类

可以通过装箱和拆箱的操作来实现包装类与基本数据类型的转换,同时也可以借由包装类来完成基本数据类型和字符串的转换

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 包装类
    • 装箱与拆箱
      • 装箱
      • 拆箱
    • 基本数据类型与包装类的比较
    • 基本数据类型和字符串之间的转换
    • 基本数据类型初始值
      • 知识点一
      • 知识点二
      • 知识点三
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档