自动装箱,自动拆箱,享元模式

本文详细探讨了Java中的自动装箱和拆箱机制,以及在Integer对象创建时如何运用享元模式。通过示例代码展示了-128到127之间Integer对象的复用特性,解释了超过该范围时如何在堆中创建新对象。内容涵盖了Java内存管理和效率优化的相关知识点。

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

public class IntegerTest {

	public static void main(String[] args) {
		// 正常创建Integer对象的方式
		Integer integer = new Integer(123);
		Integer integer2 = new Integer(123);
		System.out.println(integer == integer2);
		System.out.println(integer.equals(integer2));
		
		// 简化创建Integer对象的方式
		Integer integer3 = 127;//【自动装箱】
		//integer integer3 = 128;
		int i = integer3;// 【自动拆箱】
		
		Integer integer4 = 127;
		//Integer integer4 = 128;
		System.out.println(integer3 == integer4);
		System.out.println(integer3.equals(integer4));
	}
}

在这里插入图片描述
自动装箱:将基本类型隐式转为对应的包装类【jdk5】

自动拆箱:将包装类转换为对应的基本类型【jdk5】

享元模式:必须是使用自动装箱方式,才用享元模式,Byte/Short/Integer/Long 都在类的内部通过静态内部类缓存了 -128~127之间的数字,在此范围内并不会创建对象,都是用的静态缓存区的对象地址;一旦超过此范围,将在堆中开辟空间创建对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

༄༊心灵骇客༣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值