在 Java 的设计中提倡一种思想,即一切皆对象。但是从数据类型的划分中,我们知道 Java 中的数据类型分为基本数据类型和引用数据类型,但是基本数据类型怎么能够称为对象呢?于是 Java 为每种基本数据类型分别设计了对应的类,称之为包装类(Wrapper Classes),也有地方称为外覆类或数据类型类。

包装类的作用就是将基本类型转成对象,将基本类型作为对象来处理。

包装类和基本数据类型的关系如下表所示。

基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double
boolean Boolean

包装类的继承关系:

装箱和拆箱

在了解包装类后,下面介绍包装类的装箱与拆箱的概念。其实这两个概念本身并不难理解,

  • 基本数据类型转换为包装类的过程称为装箱,例如把 int 包装成 Integer 类的对象;
  • 包装类变为基本数据类型的过程称为拆箱,例如把 Integer 类的对象重新简化为 int。

手动实例化一个包装类称为手动拆箱装箱。Java 1.5 版本之前必须手动拆箱装箱,之后可以自动拆箱装箱,也就是在进行基本数据类型和对应的包装类转换时,系统将自动进行装箱及拆箱操作,不用在进行手工操作,为开发者提供了更多的方便。例如:

public class Demo {public static void main(String[] args) {int m = 500;Integer obj = m;  // 自动装箱int n = obj;  // 自动拆箱System.out.println("n = " + n);Integer obj1 = 500;System.out.println("obj等价于obj1返回结果为" + obj.equals(obj1));}
}

运行结果:

n = 500
obj等价于obj1返回结果为true

自动拆箱装箱是常用的一个功能,读者需要重点掌握。

包装类的应用

下面我们讲解 8 个包装类的使用,下面是常见的应用场景。

1) 实现 int 和 Integer 的相互转换

可以通过 Integer 类的构造方法将 int 装箱,通过 Integer 类的 intValue 方法将 Integer 拆箱。例如:

public class Demo {public static void main(String[] args) {int m = 500;Integer obj = new Integer(m);  // 手动装箱int n = obj.intValue();  // 手动拆箱System.out.println("n = " + n);Integer obj1 = new Integer(500);System.out.println("obj等价于obj1的返回结果为" + obj.equals(obj1));}
}

运行结果:

n = 500
obj等价于obj1的返回结果为true

2) 将字符串转换为数值类型

在 Integer 和 Float 类中分别提供了以下两种方法:

① Integer 类(String 转 int 型)

int parseInt(String s);

s 为要转换的字符串。

② Float 类(String 转 float 型)

float parseFloat(String s)

注意:使用以上两种方法时,字符串中的数据必须由数字组成,否则转换时会出现程序错误。

下面为字符串转换为数值类型的例子:

public class Demo {public static void main(String[] args) {String str1 = "30";String str2 = "30.3";// 将字符串变为int型int x = Integer.parseInt(str1);// 将字符串变为float型float f = Float.parseFloat(str2);System.out.println("x = " + x + ";f = " + f);}
}

运行结果:

x = 30;f = 30.3

3) 将整数转换为字符串

Integer 类有一个静态的 toString() 方法,可以将整数转换为字符串。例如:

public class Demo {public static void main(String[] args) {int m = 500;String s = Integer.toString(m);System.out.println("s = " + s);}
}

运行结果:

s = 500

1.1 Java包装类、装箱和拆箱相关推荐

  1. Java自动拆装箱面试_跟王老师学泛型(二):Java自动装箱与拆箱

    Java 自动装箱与拆箱(Autoboxing and unboxing) 主讲教师:王少华 QQ群:483773664 学习目标: 掌握Java 基本数据对应的包装类 掌握Java 自动装箱与拆箱 ...

  2. java的自动装箱_详解Java 自动装箱与拆箱的实现原理

    详解Java 自动装箱与拆箱的实现原理 发布于 2020-7-4| 复制链接 本篇文章主要介绍了详解Java 自动装箱与拆箱的实现原理,小妖觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小妖 ...

  3. 【转】java 自动装箱与拆箱

    java 自动装箱与拆箱 这个是jdk1.5以后才引入的新的内容,作为秉承发表是最好的记忆,毅然决定还是用一篇博客来代替我的记忆: java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的 ...

  4. java有装箱和拆箱吗_Java中装箱和拆箱,你真的都懂么?

    在给部门做分享的时候,一位同学提问说一直没搞明白Java的装箱和拆箱,让我给讲解下,所以才有了下面这篇文章: 本次文章根据PPT分享整理而成,会有5点: 1.什么是装箱和拆箱? 2.基本数据类型和包装 ...

  5. Java 自动装箱与拆箱

    Java 自动装箱与拆箱 装箱就是自动将基本数据类型转换为包装器类型(int–>Integer):调用方法:Integer 的 valueOf(int) 方法 拆箱就是自动将包装器类型转换为基本 ...

  6. java 自动装箱自动拆箱

    1.Java数据类型 在介绍Java的自动装箱和拆箱之前,我们先来了解一下Java的基本数据类型. 在Java中,数据类型可以分为两大种,Primitive Type(基本类型)和Reference ...

  7. [转]JAVA自动装箱和拆箱

    http://www.cnblogs.com/dolphin0520/p/3780005.html 1.Java数据类型 装箱和拆箱之前,我们先来了解一下Java的基本数据类型. 在Java中,数据类 ...

  8. java list装箱,Java 自动装箱和拆箱

    Java 自动装箱和拆箱 在本教程中,我们将借助示例学习Java自动装箱和拆箱. Java自动装箱-包装器对象的原始类型 在自动装箱中,Java编译器会自动将原始类型转换为其相应的包装器类对象.例如, ...

  9. Java进阶(三十七)java 自动装箱与拆箱

    java 自动装箱与拆箱是jdk1.5以后才引入的新的内容.java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装称为装箱,解包装称为拆箱): 其实按照我自己的理解自动 ...

  10. 包装类 || 装箱与拆箱

    包装类 概述 装箱与拆箱 基本数值---->包装对象 包装对象---->基本数值  装箱:把基本类型的数据,包装到包装类中(基本类型的数据->包装类)         构造方法:   ...

最新文章

  1. ASP.net随机数应用实例
  2. 理解hasOwnProperty()的作用
  3. [SDOI2006]线性方程组 高斯消元
  4. HDU 4686 Arc of Dream(递归矩阵加速)
  5. 搬运:【详解javascript中的this对象】
  6. 使用Netapp与windows server 2012搭建 iSNS服务器
  7. buntu12.10 64位 + android-ndk-r9 编译ffmpeg遇到的问题
  8. 关于IE浏览器以及Firefox下冒泡事件的响应层级
  9. 004-集成maven和Spring boot的profile功能打包
  10. 最速下滑法c语言程序,最速下降法 C语言.doc
  11. 【Java线程池实现原理及其在美团业务中的实践】
  12. 爬虫 微博评论记录_记录或评论?
  13. android备份基带,备份过SHSH,保留基带,直刷5.0.1系统完美详细教程
  14. 旋风系统时间与服务器不一致,更新公告 | 8月15日早8点停服维护
  15. 弗兰克赫兹实验计算机仿真实验报告,大学物理实验
  16. 全连接网络实现Fashion数据集学习/预测
  17. 买手机怎么选?答:看图买
  18. 使用uniapp注册全局组件
  19. Linux C/C++ 对于SIGBUS、SIGSEGV等崩溃异常捕获实现
  20. JetBrains Runtime(jbr)的介绍

热门文章

  1. Py之playsound:playsound的简介、安装、使用方法之详细攻略
  2. Python中单线程、多线程与多进程的效率对比实验
  3. 1.1 Tensorflow笔记(基础篇): 图与会话,变量
  4. OS_CORE.C(2)
  5. c++ string 字符串
  6. 窗口迅速关闭的解决办法/scanf/if/for/break
  7. 水池数目---深搜思想
  8. 零起步了解RK3288环境搭建以及版本编译
  9. R语言:na.fail和na.omit
  10. ubuntu中pycharm打不开的的处理方法