Java基础知识点3——关于自动装箱和自动拆箱机制

本文介绍了Java中的自动装箱和自动拆箱机制,包括基本数据类型、包装类和常量池的概念。自动装箱是将基本类型转换为包装类型,如int→Integer,而自动拆箱则相反。这一机制在赋值、比较、运算符和方法传参等场景下自动进行。此外,还讨论了Integer对象创建时的缓存池机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在介绍自动装箱和自动拆箱之前,我们要先了解概念:基本数据类型、包装类和常量池。

1、基本数据类型

Java基本数据类型:有8种,分别是byte(字节)、short(短整型)、int(整型)、long(长整型)、float(浮点型)、double(双精度浮点型)、boolean(布尔类型)、char(字符型)。

基本数据类型 字节 位数 取值范围 默认值
byte 1 8 -128~127 0
short 2 16 -32768 ~ 32767 0
int 4 32 -2147483648 ~ 2147483647 0
long 8 64 -9223372036854775808 ~ 9223372036854775807 0L
float 4 32 1.4E-45 ~ 3.4028235E38 0f
double 8 64 4.9E-324 ~ 1.7976931348623157E308 0d
boolean 1 —— true、false false
char 2 16 0 ~ 65535 ‘u0000’

2、包装类

包装类:作为面向对象语言,有些情况下不能直接对基本数据类型的数据进行处理,为了使基本类型可以像对象一样操作,所以Java语言将基本数据类型包装起来,形成了对应的包装类,对应关系如下表。

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

3、自动装箱和自动拆箱

那么,这两种类型如何转换呢?Java的自动装箱和自动拆箱机制实现了基本数据类型与包装类型的自动转换,在使用到的时候,无需我们人工进行转换操作。

(1)自动装箱

Java自动将基本数据类型转换为包装类型,也就是int→Integer,实际上是调用了方法Integer.valueOf(int)。

public static void main (String[] args) {
   
   
      // 创建Integer类型的对象i1时,我们可以直接写60(基本数据类型)
      // 这时会发生自动装箱,将基本数据类型转换为Integer
      // 相当于 Integer i1 = Integer.valueOf(i1);   
      Integer i1 = 60;
}

(2)自动拆箱

Java自动将包装类型转换为基本数据类型,也就是Integer→int,实际上是调用了方法Integer.intValue()。

(3)什么时候发生自动装拆箱

① 赋值操作:在包装类型和基本数据类型之间进行赋值操作时,会发生自动拆装箱。

public static void main (String[] args) {
   
   
    // i1是Integer包装类型
    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值