Integer 享元模式

本文介绍了Java中Integer的享元模式,当数值在[-128,127]之间时,valueOf方法会从缓存中返回对象引用。示例代码展示了Integer对象在特定情况下的相等性,并探讨了其他包装类如Short、Byte、Character、Long的类似实现,以及浮点数和Boolean类型的差异。此外,还讨论了自动装箱、拆箱以及运算符在不同场景下的行为。" 81740351,7414802,Python时间处理详解,"['Python', '时间处理', 'datetime']
摘要由CSDN通过智能技术生成

 

装箱: 自动将基本数据类型转换为包装器类型;Integer.valueOf(i);

拆箱: 自动将包装器类型转换为基本数据类型。Integer.intValue();

例子:

Integer i1 = 100;
Integer i2 = 100;
Integer i3 = 200;
Integer i4 = 200;
         
System.out.println(i1==i2); true
System.out.println(i3==i4); false

在通过valueOf方法创建Integer对象的时候,如果数值在[-128,127]之间,便返回指向IntegerCache.cache中已经存在的对象的引用;否则创建一个新的Integer对象。

上面的代码中i1和i2的数值为100,因此会直接从cache中取已经存在的对象,所以i1和i2指向的是同一个对象,而i3和i4则是分别指向不同的对象。

享元模式代码:

public static Integer valueOf(int i) {
    if (i &g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值