Day12-包装类

本文详细介绍了Java中的包装类,包括它们的作用、创建方式以及与基本类型的转换。重点讨论了Integer的高效创建范围以及Double类型的创建特性。同时,展示了自动装箱和拆箱的过程,并通过实例演示了字符串转换为包装类型进行计算的方法。内容涵盖了Integer的缓存机制以及在不同范围内的比较效果。
摘要由CSDN通过智能技术生成
包装类

概念:

1.对基本类进行封装,提供一些其他的功能
2.基本类型与包装类型的对应类型(int->Integer/char->Character)
3.Integer-创建方式
new Integer(5); --没有高效的效果
Integer.valueOf(5); --有高效的效果,限制范围:[-128~127]
TIPS: 只有方式二的指定范围才有高效的效果,在此范围内,数据只会存一次,后续再存都是直接使用之前存过的数据
4.double-创建方式
new Double(5.5);
Double.valueOf(5.5);
TIPS:Double就没有高效的效果,不论哪种创建方式
5.把字符串转成对应的包装类型,方便参与计算
i1.parseInt(“600”)+10.5–>610.5 --i1是Integer类型的对象
d1.parseDouble(“2.2”)+1–>3.2 --d1是Double类型的对象

  1. 自动装箱 : 基本类型 -> 包装类型
    自动拆箱:包装类型 -> 基本类型
package cn.tedu.string;

public class TestNum {
    static Integer i0;
    public static void main(String[] args) {
        int a = new Integer(5);
        Integer.valueOf(5);
       Integer i1 = new Integer(5);
       Integer i2 = new Integer(5);
       System.out.println(i1==i2);//false-->==比较的是地址值,这里两个是对象
        Integer i3 = Integer.valueOf(127);
        Integer i4 = Integer.valueOf(127);
        System.out.println(i3==i4);//true-->高效
        Integer i5 = Integer.valueOf(400);
        Integer i6 = Integer.valueOf(400);
        System.out.println(i5==i6);//false-->超出范围 失效
        System.out.println(i2.parseInt("510")+10);//520->String类型 不能与int类型直接相加
        System.out.println(i3.parseInt("600")*10);//6000->int类型可以与int类型做运算
        Double d1 = new Double(5.5);
        Double d2 = new Double(5.5);
        System.out.println(d1==d2);//false 地址不同
        Double d3 = Double.valueOf(6.6);
        Double d4 = Double.valueOf(6.6);
        System.out.println(d3==d4);//false->高效只在byte范围生效,double超出范围
        System.out.println(d1==d4);//false->两种不同的创建对象

    }
}
包装类睡前再练习
package cn.qinghe.review;

public class TestNum {
    static Integer t;
    public static void main(String[] args) {
        Integer i = new Integer(5);
        Integer i1 =new Integer(5);
        System.out.println(i==i1);//false 比较的是两个的地址值(==比较的是地址值)
        Integer i2 =Integer.valueOf(5);
        Integer i3 =Integer.valueOf(5);
        System.out.println(i2==i3);//true 创建i3时调用了创建对象i2时的地址,这里在高效的范围内(?)
        Integer i4 =Integer.valueOf(600);
        Integer i5 =Integer.valueOf(600);
        System.out.println(i4==i5);//false 高效的生效范围在[-128~127]
        System.out.println(i1.parseInt("510")+10);//520 此处510是String类型
        System.out.println(i2.parseInt("52")*10);//520 此处52为int类型
        Double d = new Double(6.6);
        Double d1 = new Double(6.6);
        System.out.println(d==d1);//false 同i==i1
        Double d2 = Double.valueOf(7.8);
        Double d3 = Double.valueOf(7.8);
        System.out.println(d2==d3);//false   同下
        Double d4 =Double.valueOf(600);
        Double d5 =Double.valueOf(600);
        System.out.println(d4==d5);//false double类型不在高效生效的范围内
        System.out.println(d1==d2);//false 两种不同的创建方法
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值