内存地址问题总结

public class HashCodeImpl {

    public static Set nameSet;

    @Override
    public void test() {
        nameSet = new HashSet();
        List list = repository.findAll();
        if (!CollectionUtil.isEmpty(list)) {
            for (Student stu : list) {
                nameSet.add(stu.getName);
            }
        }
    }

    上面标红代码行应该改为如下所示,每次刷新后把结果集合nameSet赋给nameSet 内存地址不变;
    否则每次都去new一个新的对象,会出现并发问题


    @Override
    public void test() {
        Set tempSet = new HashSet();
        List list = repository.findAll();
        if (!CollectionUtil.isEmpty(list)) {
            for (Student stu : list) {
                tempSet.add(stu.getName);
            }
        }
        nameSet = tempSet;
    }

}


public class Test {

    @Test
    public void testHashCode(){
       HashSet  set=  HashCodeImpl.nameSet;
       
    }


}

你可能感兴趣的:(内存地址问题总结)