11.3 包装类(熟悉)| 拉勾Java就业急训营

11.3 包装类(熟悉)

11.3.1 包装类的概念

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

11.3.2 包装类的分类

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

11.3.3 Integer类的概述

(1)基本概念

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

(2)常用的常量
常量类型和名称功能介绍
public static final int MAX_VALUE表示int类型可以描述的最大值,即231-1
public static final int MIN_VALUE表示int类型可以描述的最小值,即-231
public static final int SIZE表示int类型采用二进制补码形式的位数
public static final int BYTES表示int类型所占的字节个数
public static final Class TYPE表示int类型的Class实例
(3)常用的方法
方法声明功能介绍
Integer(int value)根据参数指定的整数来构造对象(已过时)
Integer(String s)根据参数指定的字符串来构造对象(已过时)
int intValue() 获取调用对象中的整数值并返回
static Integer valueOf(int i) 根据参数指定整数值得到Integer类型对象
boolean equals(Object obj)比较调用对象与参数指定的对象是否相等
String toString() 返回描述调用对象数值的字符串形式
static int parseInt(String s)把字符串类型转换为int类型并返回
static String toString(int i) 获取参数指定整数的十进制字符串形式
static String toBinaryString(int i)获取参数指定整数的二进制字符串形式
static String toHexString(int i)获取参数指定整数的十六进制字符串形式
static String toOctalString(int i) 获取参数指定整数的八进制字符串形式
(4)装箱和拆箱的概念

在Java5发布之前使用包装类对象进行运算时,需要较为繁琐的“拆箱”和“装箱”操作;即运算前先将包装类对象拆分为基本类型数据,运算后再将结果封装成包装类对象。
从Java5开始增加了自动拆箱和自动装箱的功能。

(5)自动装箱池

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

——附:代码
package com.lagou.task11;

public class IntegerTest {

    public static void main(String[] args) {

        // 1.打印Integer类中常用的常量数值
        System.out.println("最大值是:" + Integer.MAX_VALUE);    // 2^31-1
        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

        System.out.println("------------------------------------");
        // 2.使用构造方法来构造Integer类型的对象并打印
        Integer it1 = new Integer(123);
        System.out.println("it1 = " + it1);  // 自动调用toString方法   123
        Integer it2 = new Integer("456");
        System.out.println("it2 = " + it2);  // 456
        // 上述方法已过时,建议使用valueOf方法取代之,相当于从int类型到Integer类型的转换,叫做装箱
        Integer it3 = Integer.valueOf(123);
        System.out.println("it3 = " + it3);
        Integer it4 = Integer.valueOf("456");   // 123
        System.out.println("it4 = " + it4);     // 456  自动调用toString方法得到的String类型
        // 获取调用对象中的整数数据,相当于从Integer类型到int类型的转换,叫做拆箱
        int ia = it4.intValue();
        System.out.println("获取到的整数数据是:" + ia);  // 456 得到的是int类型

        System.out.println("------------------------------------");
        // 3.从Java5开始增加了自动装箱和自动拆箱的机制
        Integer it5 = 100;  // 直接通过赋值运算符实现自动装箱
        int ib = it5;   // 直接通过赋值运算符实现自动拆箱

        System.out.println("------------------------------------");
        // 装箱和拆箱的笔试考点
        Integer it6 = 127;
        Integer it7 = 127;
        Integer it8 = new Integer(127);
        Integer it9 = new Integer(127);
        System.out.println(it6 == it7);         // 比较地址 true    自动装箱池技术
        System.out.println(it6.equals(it7));    // 比较内容 true
        System.out.println(it8 == it9);         // 比较地址 false
        System.out.println(it8.equals(it9));    // 比较内容 true

        System.out.println("------------------------------------");
        // 5.实现静态方法的调用
        int ic = Integer.parseInt("200");
        //int ic = Integer.parseInt("200a");    // 编译ok,运行发生java.lang.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
    }
}

11.3.4 Double类的概述

(1)基本概念

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

(2)常用的常量
常量类型和名称功能介绍
public static final int SIZE表示double类型的二进制位数
public static final int BYTES表示double类型的字节个数
public static final Class TYPE表示double类型的Class实例
(3)常用的方法
方法声明功能介绍
Double(double value) 根据参数指定的浮点数据来构造对象(已过时)
Double(String s) 根据参数指定的字符串来构造对象 (已过时)
double doubleValue()获取调用对象中的浮点数据并返回
static Double valueOf(double d)根据参数指定浮点数据得到Double类型对象
boolean equals(Object obj)比较调用对象与参数指定的对象是否相等
String toString()返回描述调用对象数值的字符串形式
static double parseDouble(String s)将字符串类型转换为double类型并返回
boolean isNaN()判断调用对象的数值是否为非数字
  • 扩展:java.lang.Number类是个抽象类,是上述类的父类来描述所有类共有的成员。
——附:代码
package com.lagou.task11;

public class DoubleTest {

    public static void main(String[] args) {

        // 1.在Java5之前装箱和拆箱的实现
        // 实现了从double类型到Double类型的转换,装箱
        Double db1 = Double.valueOf(3.14);
        System.out.println("db1 = " + db1);
        // 实现了从Double类型到double类型的转换,拆箱
        double d1 = db1.doubleValue();
        System.out.println("d1 = " + d1);

        System.out.println("--------------------------------------");
        // 2.从Java5开始实现自动装箱和自动拆箱
        Double db2 = 3.14;
        double d2 = db2;

        System.out.println("--------------------------------------");
        // 3.实现静态方法和成员方法的使用
        double d3 = Double.parseDouble("13.14");
        System.out.println("d3 = " + d3);

        System.out.println("db2对象的判断结果是" + db2.isNaN());    // false 不是非数字
        Double db3 = Double.valueOf(0/0.0);
        System.out.println("db3对象的判断结果是" + db3.isNaN());    // true 是非数字

    }
}

在这里插入图片描述

11.3.6 Character类的概述

(1)基本概念

java.lang.Character类型内部包装了一个char类型的变量作为成员变量,主要用于实现对char类型的包装并提供字符类别的判断和转换等方法。

(2)常用的常量
常量类型和名称功能介绍
public static final int SIZE表示char类型的二进制位数
public static final int BYTES表示char类型的字节个数
public static final Class TYPE表示char类型的Class实例
(3)常用的方法
方法声明功能介绍
Character(char value)根据参数指定的字符数据来构造对象(已过时)
char charValue() 获取调用对象中的字符数据并返回
static Character valueOf(char c) 根据参数指定字符数据得到Character类型对象
boolean equals(Object obj) 比较调用对象与参数指定的对象是否相等
String toString()返回描述调用对象数值的字符串形式
static boolean isUpperCase(char ch) 判断参数指定字符是否为大写字符
static boolean isLowerCase(char ch)判断参数指定字符是否为小写字符
static boolean isDigit(char ch)判断参数指定字符是否为数字字符
static char toUpperCase(char ch)将参数指定的字符转换为大写字符
static char toLowerCase(char ch)将参数指定的字符转换为小写字符
——附:代码
package com.lagou.task11;

public class CharacterTest {

    public static void main(String[] args) {

        // 1.在Java5之前调用方法实现装箱和拆箱机制
        // 相当于从char类型转Character类型的转换,装箱
        Character ca1 = Character.valueOf('a');
        System.out.println("ca1 = " + ca1);
        // 从Character类型向char类型的转换,拆箱
        char c1 = ca1.charValue();
        System.out.println("c1 = " + c1);

        System.out.println("--------------------------------");
        // 2.从Java5开始支持自动装箱和拆箱
        Character ca2 = 'b';
        char c2 = ca2;
        System.out.println("c2 = " + c2);

        System.out.println("--------------------------------");
        // 3.实现字符类型的判断以及转换
        System.out.println(Character.isUpperCase(c2));  // 判断是否为大写字母 false
        System.out.println(Character.isLowerCase(c2));  // 判断是否为小写字母 true
        System.out.println(Character.isDigit(c2));      // 判断是否为数字字符 false
        System.out.println("转换为大写字符是:" + Character.toUpperCase(c2));    // B
        System.out.println("转换为小写字符是:" + Character.toLowerCase(c2));    // b

    }
}

在这里插入图片描述

学习资源来自:拉勾教育_Java就业急训营
拉勾Java就业急训营课程学习进度记录:查看进度
拉勾Java就业急训营课程学习笔记整理:查看笔记目录

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值