享元模式(Integer.vuludOf)

享元模式用于减少对象创建,提高性能。在Java中,Integer对象通过valueOf方法实现享元模式,对于-128到127间的值,会复用已有对象,否则新建。因此推荐使用valueOf创建Integer包装类实例。
摘要由CSDN通过智能技术生成

享元模式定义如下:

享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。

享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。

public static void main(String[] args) { 

 	m = new Integer(2);  
    n = new Integer(2);  
    System.out.println(m == n);   
 //new 关键字每次都会在堆内存上开辟一块新的空间用于存放创建出来的对象,创建出来的对象是新的对象 
    
    Integer m = Integer.valueOf(1);  
    Integer n = Integer.valueOf(1);  
    System.out.println(m == n);
//默认情况下,如果使用 Integer.valueOf(int) 创建的 Integer 对象值在 -128 ~ 127 之间,那么无论创建多少次,创建的每一个对象使用== 关系操作符得到的结果都是true,否则都是false。
   
    Integer i = Integer.valueOf(300);    
    Integer j = Integer.valueOf(300);   
    System.out.println(i == j);
  
}

总结:
通过静态工厂 Integer.valueOf(int) 来创建 Integer 对象,首先会判断创建的对象值是否有缓存,有的话取缓存中的值,没有则通过new Interger(int) 创建并返回。

我们以后在创建 Integer 的包装类型时,尽量使用Integer.valueOf()来创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值