首页 > 学院 > 开发设计 > 正文

不可以改变对象之缓存

2019-11-06 06:49:26
字体:
来源:转载
供稿:网友
public class Name{ PRivate String firstName; private String lastName; private static final Set<SoftReference<Name>>names=new HashSet<SoftReference<Name>>(); public static Name valueOf(String firstName,String lastName){ for(SoftReference<Name>ref:names){ Name name=ref.get(); if(name!=null&&name.getFirstName().equals(firstName)&&name.getLastName().equals(lastName)){ return name; } } Name name=new Name(firstName, lastName); SoftReference<Name>softReference=new SoftReference<Name>(name); names.add(softReference); return name; } private Name(String firstName,String lastName){ this.firstName=firstName; this.lastName=lastName; } public String getFirstName() { return firstName; } public String getLastName() { return lastName; }}

这里用到了SoftReference 是指的是弱引用,他可以在内存不足的时候实现自动释放


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表