包装类(Wrapper)

基本概念

  • 通常情况下基本数据类型的变量不是对象,为了满足万物皆对象的理念就需要对基本数据类型的变量进行打包封装处理变成对象,而负责将这些变量声明为成员变量进行对象化处理的相关类,叫做包装类

  • 包装类对应的基本数据类型
    java.lang.Bytebyte
    java.lang.Shortshort
    java.lang.Integerint
    java.lang.Longlong
    java.lang.Floatfloat
    java.lang.Doubledouble
    java.lang.Booleanboolean
    java.lang.Characterchar

Integer类

基本概念
  • java.lang.Integer类内部包装了一个int类型的变量作为成员变量,主要用于实现对int类型的包装并 提供int类型到String类之间的转换等方法。
常用常量

基础知识:

  • int类型的数值有正负,一个int型的数字有32位,其中一位存正负号,数值部分有31位
public class IntegerTest {

    public static void main(String[] args) {
        
        // 打印Integer类中常用的常量数值
        System.out.println("最大值是:" + Integer.MAX_VALUE); // 2^31-1(减去0)
        System.out.println("最小值是:" + Integer.MIN_VALUE); // -2^31
        System.out.println("所表示二进制的位数是:" + Integer.SIZE); // 32
        System.out.println("所占字节的个数是:" + Integer.BYTES); // 4
        System.out.println("对应int类型的Class实例是:" + Integer.TYPE); // int
    }
}
常用方法
public class IntegerTest {

    public static void main(String[] args) {

        int ic = Integer.parseInt("200");
        //int ic = Integer.parseInt("200a"); 
        // 编译ok,运行发生NumberFormatException数字格式异常,因为有字母
        System.out.println("字符串转换为整数的结果是:" + ic); // 200
        
        System.out.println("根据参数指定的整数获取对应的十进制字符串是:" + Integer.toString(200)); // 200
        System.out.println("根据参数指定的整数获取对应的二进制字符串是:" + Integer.toBinaryString(200)); // 11001000
        System.out.println("根据参数指定的整数获取对应的十六进制字符串是:" + Integer.toHexString(200)); // c8
        System.out.println("根据参数指定的整数获取对应的八进制字符串是:" + Integer.toOctalString(200)); // 310
    }
}
装箱和拆箱
  • 在Java5发布之前使用包装类对象进行运算时,需要较为繁琐的“拆箱”和“装箱”操作;即运算前先将包装类对象拆分为基本类型数据,运算后再将结果封装成包装类对象。
  • 从Java5开始增加了自动拆箱和自动装箱的功能。
public class IntegerTest {

    public static void main(String[] args) {

        // Java5发布之前
        Integer it5 = Integer.valueOf(100);
        int ib = it5.intValue(); 
        
        // 从Java5开始增加了自动装箱和自动拆箱的机制
        Integer it5 = 100;  // 直接通过赋值运算符实现自动装箱
        int ib = it5;       // 直接通过赋值运算符实现自动拆箱
    }
}

笔试考点——自动装箱池:

  • 在Integer类的内部提供了自动装箱池技术,将-128到127之间的整数已经装箱完毕,当程序中使用 该范围之间的整数时,无需装箱直接取用自动装箱池中的对象即可,从而提高效率。
public class IntegerTest {

    public static void main(String[] args) {

        Integer it6 = 127; //128;
        Integer it7 = 127; //128;
        Integer it8 = Integer.valueOf(127); //new Integer(128);
        Integer it9 = Integer.valueOf(127); //new Integer(128);
        System.out.println(it6 == it7);      // 比较地址  false  true 127时地址一样
        System.out.println(it6.equals(it7)); // 比较内容  true
        System.out.println(it8 == it9);      // 比较地址  false
        System.out.println(it8.equals(it9)); // 比较内容  true
    }
}
使用总结(Integer为例)
  • 基本数据类型转换为对应包装类的方式
    • 调用包装类的构造方法 Integer(int value) / Integer(String s)(过时)
    • 调用包装类的静态方法 static Integer valueOf(int i)(推荐)
  • 获取包装类对象中基本数据类型变量数值的方式
    • 调用包装类中的int intValue()方法即可
  • 字符串转换为基本数据类型的方式
    • 调用包装类中的static int parseInt(String s)方法即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值