JavaSE笔记9-基本数据类型对象包装类

一. 概念

为了方便操作基本数据类型值,将其封装成对象,在对象中定义了属性和行为。
用于描述该对象的类就称为基本数据类型对象包装类。

基本数据类型基本数据类型对象包装类
byteByte
shortShort
intInteger
longLong
booleanBoolean
floatFloat
doubleDouble
charCharacter

二. 常见作用

用于基本数据类型字符串类型之间做转换

1. 基本数据类型转成字符串
//方法1
基本数据类型值+字符串;
//方法2:用toString方法
static 基本数据类型对象包装类.toString(基本数据类型值);

例子:

class IntegerDemo{
    public static void main(String[] args){
        Integer i=2;
        //1. 基本数据类型值+字符串
        System.out.println(i+"ab");
        //2.基本数据类型对象包装类.toString(基本数据类型值)
        System.out.println(Integer.toString(34));
    }
}

运行结果是:
在这里插入图片描述

2. 字符串转成基本数据类型
//方法1:静态方法,可以直接由基本数据类型对象包装类调用
static 基本数据类型 a=基本数据类型对象包装类.parse基本数据类型对象包装类(字符串);
//方法2:非静态方法,要用对象调用
基本数据类型对象包装类 i=new 基本数据类型对象包装类(字符串);
基本数据类型 a=i.基本数据类型Value();

例子1:

class IntegerDemo{
    public static void main(String[] args){
        int a=Integer.parseInt("123");
        System.out.println(a+4);
        double b=Double.parseDouble("12.23");
        System.out.println(b+4);
        boolean c=Boolean.parseBoolean("true");
        System.out.println(c);
    }
}

运行结果是:
在这里插入图片描述
例子2:

class IntegerDemo{
    public static void main(String[] args){
        /*
        int a=Integer.parseInt("123");
        System.out.println(a+4);
        */
        Integer a=new Integer("123");
        System.out.println(a.intValue()+4);
        /*
        double b=Double.parseDouble("12.23");
        System.out.println(b+4);
         */
        Double b=new Double("12.23");
        System.out.println(b.doubleValue()+4);
        /*
        boolean c=Boolean.parseBoolean("true");
        System.out.println(c);
         */
        Boolean d=new Boolean("true");
        System.out.println(d.booleanValue());
    }
}

运行结果是:
在这里插入图片描述

3. 十进制转成其他进制
String Integer.toBinaryString(整型值);//返回整型值的二进制字符串
String Integer.toHexString(整型值);//返回整型值的十六进制字符串
String Integer.toOctalString(整型值);//返回整型值的八进制字符串

例子:

class IntegerDemo{
    public static void main(String[] args){
        //转成二进制字符串
        System.out.println(Integer.toBinaryString(6));
        System.out.println(Integer.toBinaryString(-6));
        //转成十六进制字符串
        System.out.println(Integer.toHexString(60));
        //转成八进制字符串
        System.out.println(Integer.toOctalString(60));
    }
}

运行结果:
在这里插入图片描述

4. 其他进制转成十进制
int i=Integer.parseInt(String,radix);//radix表示进制数

例子:

class IntegerDemo{
    public static void main(String[] args){
        int x=Integer.parseInt("110",2);
        System.out.println(x);
        int y=Integer.parseInt("110",8);
        System.out.println(y);
        int z=Integer.parseInt("110",10);
        System.out.println(z);
        int m=Integer.parseInt("110",16);
        System.out.println(m);
    }
}

运行结果是:
在这里插入图片描述

三. 新特性

1. 自动装箱和自动拆箱

JDK1.5版本以后出现的新特性,方便了基本数据类型和其对应的包装类型之间的转换。
自动装箱:将一个基本数据类型的值赋给其对应的包装类型
自动拆箱:将一个包装类类型的值赋给其对应的基本数据类型

例子:

class IntegerDemo
{
    public static void main(String[] args)
    {
        Integer x=4;  //Integer x=new Integer(4),自动装箱 4=new Integer(4);
        x=x+4;       //x+4:x进行了自动拆箱变成了int类型,和4进行加法运算,再将和进行自动装箱赋给x
        System.out.println(x);
    }
}

运行结果是:
在这里插入图片描述

2. 包装类数据缓存

Java对部分基本数据类型对应的包装类部分数据进行了缓存,当再次使用等值对象时直接从缓存中获取,不会重新创建新的对象,可提高程序的执行性能。

  • byte/short/int/long对应的包装类Byte/Short/Integer/Long:数据缓存范围是-128~127,包含-128和127
  • float/double对应的包装类Float/Double:没有数据缓存范围
  • char对应的包装类Character:数据缓存范围是0~127,包含0和127
  • boolean对应的包装类Boolean:数据缓存范围是true和false

例子:

class IntegerDemo {
    public static void main(String[] args) {
        //1. 整型包装类数据缓存范围:-128~127
        Integer i1 = -128;
        Integer i2 = -128;
        System.out.println(i1 == i2);//输出true
        Integer i3 = 128;
        Integer i4 = 128;
        System.out.println(i3 == i4);//输出false

        //2. 浮点型包装类没有数据缓存范围
        Double d1 = 1.0;
        Double d2 = 1.0;
        System.out.println(d1 == d2);//输出false

        //3. 字符型包装类数据缓存范围:0~127
        Character c1 = 127;
        Character c2 = 127;
        System.out.println(c1 == c2);//输出true

        //4. 布尔型包装类数据缓存范围:true和false
        Boolean b1 = true;
        Boolean b2 = true;
        System.out.println(b1 == b2);//输出true
    }
}

运行结果是:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值