强哥说Java--Java包装类(一)

简介: 强哥说Java--Java包装类(一)

1. 什么是包装类



Java 有 8 种基本数据类型,Java 中的每个基本类型都被包装成了一个类,这些类被称为包装类。


包装类可以分为 3 类:Number、Character、Boolean,包装类的架构图如下所示:


image.png


2. 为什么需要包装类



我们知道 Java 是面向对象的编程语言,但为了便于开发者上手,Java 沿用了 C 语言的基本数据类型,因此 Java 数据类型被分为了基本数据类型和引用数据类型。


对于简单的运算,开发者可以直接使用基本数据类型。但对于需要对象化交互的场景(例如将基本数据类型存入集合中),就需要将基本数据类型封装成 Java 对象,这是因为基本数据类型不具备对象的一些特征,没有对象的属性和方法,也不能使用面向对象的编程思想来组织代码。出于这个原因,包装类就产生了。


包装类就是一个类,因此它有属性、方法,可以对象化交互。


3. 基本数据类型与包装类



下表列出了基本数据类型对应的包装类。这些包装类都位于 java.lang 包下,因此使用包装类时,我们不需要手动引入。


基本数据类型 对应的包装类


byte Byte


short Short


int Integer


long Long


float Float


double Double


char Character


boolean Boolean


除了 int 对应的包装类名称为 Integer 以及 char 对应的包装类名称 Character,其他 6 种数据类型对应的包装类,命名都为其基本数据类型的首字母的大写。


4. 包装类常用方法



4.1 Number 类


Number 类是所有数值类型包装类的父类,这里以其中一个子类 Integer 类为例,介绍其构造方法、常用方法以及常量。


4.1.1 构造方法


Integer 类提供两个构造方法:


Integer(int value):以 int 型变量作为参数创建 Integer 对象;

Integer(String s):以 String 型变量作为参数创建 Integer 对象。

实例如下:


package com.caq.exception;
public class Test2 {
    public static void main(String[] args) {
        //以int变量为参数创建对象
        Integer integer = new Integer(3);
        //以字符串类型作为参数创建对象
        Integer integer1 = new Integer("5");
    }
}


4.1.2 常用方法


byte byteValue():以 byte 类型返回该 Integer 的值;


int compareTo(Integer1 Integer2):在数值上比较两个 Integer 对象。如果这两个值相等,则返回 0;如果调用对象的数值小于 Integer2 的数值,则返回负值;如果调用对象的数值大于 Integer2的数值,则返回正值;


boolean equals(Object obj):比较此对象与指定对象是否相等;


int intValue():以 int 类型返回此 Integer 对象;


int shortValue():以 short 类型返回此 Integer 对象;


toString():返回一个表示该 Integer 值的 String 对象;


static Integer valueOf(String str):返回保存指定的 String 值的 Integer 对 象;


int parseInt(String str):返回包含在由 str 指定的字符串中的数字的等价整数值。


4.1.3 常用常量


MAX_VALUE: 表示 int 型可取的最大值;


MIN_VALUE: 表示 int 型可取的最小值;


SIZE:表示以二进制补码形式表示 int 值的位数;


TYPE: 表示基本类型 Class 实例。


package com.caq.exception;
public class Test2 {
    public static void main(String[] args) {
        int a = Integer.MAX_VALUE;
        int b = Integer.MIN_VALUE;
        int c = Integer.SIZE;
        System.out.println("int类型可取的MAX_VALUE是"+a);
        System.out.println("int类型可取的MIN_VALUE是"+b);
        System.out.println("int类型可取的二进制位数是"+c);
    }
}


运行结果:


int类型可取的MAX_VALUE是2147483647
int类型可取的MIN_VALUE是-2147483648
int类型可取的二进制位数是32


相关文章
|
2月前
|
JavaScript Java 编译器
Java包装类和泛型的知识点详解
Java包装类和泛型的知识点的深度理解
|
2月前
|
存储 Java 数据库
java包装类的作用、基本类型和包装类型的区别
java包装类的作用、基本类型和包装类型的区别
50 0
java包装类的作用、基本类型和包装类型的区别
|
9月前
|
存储 缓存 Java
【面试题精讲】Java包装类缓存机制
【面试题精讲】Java包装类缓存机制
|
10天前
|
存储 Java
Java中的基本数据类型及其包装类
Java中的基本数据类型及其包装类
|
28天前
|
Java
【Java】Java的包装类(Wrapper Classes)
【Java】Java的包装类(Wrapper Classes)
9 0
|
1月前
|
Java C语言 开发者
30. 【Java教程】包装类
30. 【Java教程】包装类
12 0
|
2月前
|
Java
【JAVA基础篇教学】第二篇:Java包装类
【JAVA基础篇教学】第二篇:Java包装类
|
2月前
|
存储 Java 编译器
解析Java中的包装类和泛型
解析Java中的包装类和泛型
|
2月前
|
Java API
【JAVA学习之路 | 提高篇】包装类(包装类与基本数据类型及String类之间的转换)
【JAVA学习之路 | 提高篇】包装类(包装类与基本数据类型及String类之间的转换)
|
2月前
|
存储 缓存 Java
Java包装类
Java包装类
21 0