guava缓存,取出的是引用

  1. 云栖社区>
  2. 博客>
  3. 正文

guava缓存,取出的是引用

填坑大人 2018-05-16 20:18:21 浏览682
展开阅读全文

直接上代码

import java.util.concurrent.TimeUnit;

import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;

public class GuavaSample {

    private String name = "test";

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public static Cache<String, GuavaSample> getCache() {
        return cache;
    }

    private static final Cache<String, GuavaSample> cache = CacheBuilder.newBuilder()
            .expireAfterWrite(120L, TimeUnit.MINUTES).build();

    public static void main(String[] args) {
        GuavaSample obj1 = new GuavaSample();

        cache.put("obj1", obj1);

        // 方法一,改了实例2的属性,看是否实例1的属性是否变化
        GuavaSample obj1_1 = cache.getIfPresent("obj1");
        GuavaSample obj1_2 = cache.getIfPresent("obj1");
        System.out.println("取出来的是否为同一个对象:" + (obj1_1 == obj1_2));

        // 方法二,改了实例2的属性,看是否实例1的属性是否变化
        obj1_1.setName("aaa");
        obj1_2.setName("bbb");
        System.out.println("取出来的是否为同一个对象:" + "bbb".equals(obj1_1.getName()));
    }
}

网友评论

登录后评论
0/500
评论
填坑大人
+ 关注