《疯狂JAVA讲义》缓存实例的不可变类

本文介绍了一个简单的缓存池实现方法,通过一个名为 CacheImmutale 的类来管理固定大小的缓存,并且提供了缓存对象的复用机制。此外,还提供了一个测试类用于验证缓存对象是否能正确地被复用。
class CacheImmutale
{
    private static int MAX_SIZE =10;
    private static CacheImmutale[] cache
        =new CacheImmutale[MAX_SIZE];
    private static int pos=0;
    private final String name;
    private CacheImmutale(String name){
        this.name=name;
    }
    public String getName(){
        return name;
    }
    public static CacheImmutale valueOf(String name){
        for(int i=0;i<MAX_SIZE;i++){
            if(cache[i]!=null&&cache[i].getName().equals(name)){
                return cache[i];
            }
        }
        if(pos== MAX_SIZE){
            cache[0]=new CacheImmutale(name);
            pos=1;
        }
        else {
            cache[pos++]=new CacheImmutale(name);
        }
        return cache[pos-1];
    }
    public boolean equals(Object obj){
        if(this == obj){
            return true;
        }
        if(obj!=null && obj.getClass()==CacheImmutale.class){
            CacheImmutale ci=(CacheImmutale)obj;
            return name.equals(ci.getName());
        }
        return false;
    }
    public int hashCode(){
        return name.hashCode();
    }
}
public class CacheImmutaleTest
{
    public static void main(String[] args){
        CacheImmutale c1=CacheImmutale.valueOf("Hello");
        CacheImmutale c2=CacheImmutale.valueOf("Hello");
        System.out.println(c1==c2);
    }
}

 

转载于:https://www.cnblogs.com/whutqueqiaoxian/p/5711412.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值