Java基础——包装类

学习包装类之前,要先了解数据的基本类型
基本数据类型
让基本数据类型拥有属性方法,将其“装箱”,就成为了包装类。包装类是最终类,不可以被其他类继承。
基本数据类型与其对应的包装类
数值型对应的包装类继承于Number类
字符型和布尔型都是继承于Object类

包装类的定义

包装类除了由基本数据类型“装箱”实现外,也可以直接定义

public class TestDemo {
    String name="乌龙";
    Integer age=2;
    Integer paw=new Integer(4);
    Double height=Double.valueOf(25);
    Double weight;

定义包装类对象,既可以像成员变量一样书写,也可以像实例化对象一样书写,还可以利用包装类.valueOf() 的方法将基本类型数据作为参数变成包装类对象

TestDemo cat=new TestDemo();
cat.age=3;
        System.out.println(cat);

改变age的值后,随意定义一个对象并将其输出
输出结果
可以看出,即使作为类,依旧存在成员变量的作用,而age也变成了修改后的数值,虽然是最终类,但是可以改变数值。而没有赋值的weight,则输出为null
所有的包装类初始值都为null

装箱

基本数据类型转换为包装类的过程就是装箱,装箱可以分为自动装箱和手动装箱,这两种方式区别不大,可以忽略。

int num1=12;

定义一个基本数据类型num1,赋值12

        //自动装箱
        Integer num2=num1;
        //手动装箱
        Integer num3=new Integer(num1);

分别装箱

拆箱

包装类转换为基本数据类型的过程便是拆箱,与装箱过程相同,拆箱也分为自动拆箱和手动拆箱。

Integer num4=12;

定义一个包装num4,赋值12

        //自动拆箱
        int num5=num4;
        //手动拆箱
        int num6=num4.intValue();

手动拆箱即在Value前加上基本数据类型构成手动拆箱的方法

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

        int n1=2;
        String n2=Integer.toString(n1);

定义一个基本数据类型,将基本数据类型作为参数传入包装类.toString() 的方法,将其转换为字符串类型,

        int n3=Integer.parseInt(n2);
        int n4=Integer.valueOf(n2);

两种将字符串类型转换为基本数据类型的方法:
1.将字符串类型对象作为参数传入包装类.parse基本数据类型() 的方法,直接将字符串转换为基本数据类型。
2.将字符串类型对象作为参数传入包装类.valueOf() 的方法,将字符串转换为包装类,再由系统自动拆箱为基本数据类型。

缓存池(对象池)

除了Float和Double,其他包装类在定义时,都会用到缓存池。
来自慕课网学习视频
定义包装类时,如果参数在-128到127之间,则会直接产生,如果不在这个范围内,则会实例化产生。
“==”双等号的两头如果是对象,则会判断对象所知的空间而不是空间里的内容。我们使用这个符号来证实缓存池的作用。

        Integer one=100;
        Integer two=100;
        Integer three=200;
        Integer four=200;
        System.out.println("one==two的结果:"+(one==two));
        System.out.println("three==four的结果:"+(three==four));

输出结果
产生这样的结果是因为,当包装类对象one在缓存区中建立了参数100之后,two就可以直接从缓存区使用,两个对象指向的就都是缓存区,即一块空间。而three建立的参数200不在范围内,所以和four分别实例化, 建立两块空间。
注意: 包装类对象和基本类型的数值进行==判断时,包装类对象会自动拆箱后进行熟知的比较。

System.out.println("one==100的结果:"+(one==100));

输出结果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值