包装类(Wrapper Class)

简介: Object 引用可以指向任意类型的对象,但有例外出现了,8 种基本数据类型不是对象,那岂不是刚才的泛型机制要失效了?实际上也确实如此,为了解决这个问题,java 引入了一类特殊的类,即这 8 种基本数据类型的包装类,在使用过程中,会将类似 int 这样的值包装到一个对象中去。

Object 引用可以指向任意类型的对象,但有例外出现了,8 种基本数据类型不是对象,那岂不是刚才的泛型机制要失效了?

实际上也确实如此,为了解决这个问题,java 引入了一类特殊的类,即这 8 种基本数据类型的包装类,在使用过程中,会将类似 int 这样的值包装到一个对象中去。
2.1 基本数据类型和包装类直接的对应关系
基本就是类型的首字母大写,除了 Integer 和 Character。

例如我们将String(字符串)转为int(整形)类型:
image.png

int ret = Integer.valueOf(str);
System.out.println(ret + 1);

image.png
2.2 包装类的使用,装箱(boxing)和拆箱(unboxing)
装箱、装包:把简单类型–>包装类类型

拆箱、拆包:把包装类类型–>简单数据类型


// 装箱操作,新建一个 Integer 类型对象,将 i 的值放入对象的某个属性中
Integer ii = Integer.valueOf(i);
Integer ij = new Integer(i);

// 拆箱操作,将 Integer 对象中的值取出,放到一个基本数据类型中
int j = ii.intValue();

2.3 自动装箱(autoboxing)和自动拆箱(autounboxing)
可以看到在使用过程中,装箱和拆箱带来不少的代码量,所以为了减少开发者的负担,java 提供了自动机制。


Integer ii = i; // 自动装箱
Integer ij = (Integer)i; // 自动装箱

int j = ii; // 自动拆箱
int k = (int)ii; // 自动拆箱
相关文章
|
18天前
|
Java
java-基础-Interface、abstract类、Static class 、non static class的区别
【4月更文挑战第5天】Java中的接口、抽象类、静态类和非静态类各具特色:接口仅含抽象方法和常量,用于定义行为规范;抽象类可包含抽象和非抽象方法,提供部分实现,支持多继承;静态内部类不依赖外部类实例,可独立存在,访问外部类的静态成员;非静态内部类持有关联外部类引用,能访问其所有成员。这些机制根据设计需求和场景选择使用。
14 6
|
1月前
|
Java
获取 Class 对象
获取 Class 对象
8 1
|
JavaScript 前端开发 程序员
Class-总结 class 的基本用法和两个注意点|学习笔记
快速学习 Class-总结 class 的基本用法和两个注意点
126 0
|
JavaScript 程序员
Class-总结class的基本用法和两个注意点
一、注意点一:class关键字区间使用 二、注意点二:Class关键字内部函数
|
Java Spring
FileSystemResource和ClassPathResource有何区别?
FileSystemResource和ClassPathResource有何区别?
FileSystemResource和ClassPathResource有何区别?
|
Java
Java - Boolean & boolean 定义 POJO 的区别?
Java - Boolean & boolean 定义 POJO 的区别?
98 0
|
Java
Java中包装类(Wrapper)的使用
Java中包装类(Wrapper)的使用
354 0
object如何转成list<Class>
object如何转成list<Class>
162 0
object如何转成list<Class>
|
Java Android开发
JAVA interface报错:abstract methods do not specify a body
JAVA interface报错:abstract methods do not specify a body
297 0