List<Role>allRoleList = new ArrayList();
Role role = new Role();
role.setRoleID(156);
role.setName("系统管理员");
allRoleList.add(role);
role.setRoleID(157);
role.setName("航班信息管理员");
allRoleList.add(role);
role.setRoleID(158);
role.setName("机场设施 管理员");
allRoleList.add(role);
role.setRoleID(159);
role.setName("新闻发布员");
allRoleList.add(role);
role.setRoleID(161);
role.setName("普通用户");
allRoleList.add(role);最后allRoleList里全装的最后设定的role值,为同一个.
平时都是new 一个role,在list里加一个role,今天想节省点内存,就出问题了
请问,出现这个问题的原因是什么呢?请指教!
Role role = new Role();
role.setRoleID(156);
role.setName("系统管理员");
allRoleList.add(role);
role.setRoleID(157);
role.setName("航班信息管理员");
allRoleList.add(role);
role.setRoleID(158);
role.setName("机场设施 管理员");
allRoleList.add(role);
role.setRoleID(159);
role.setName("新闻发布员");
allRoleList.add(role);
role.setRoleID(161);
role.setName("普通用户");
allRoleList.add(role);最后allRoleList里全装的最后设定的role值,为同一个.
平时都是new 一个role,在list里加一个role,今天想节省点内存,就出问题了
请问,出现这个问题的原因是什么呢?请指教!
创建了一个对象(Role),jvm就为他开辟一块堆的位置,无论你怎么改这个堆内的内容,只能得到最后的更改的内容.
必须为每个对象创建属于他们的堆位置,也就是:
Role r=new Role();
这句不可少.
别忘了给分啊..........
这属于java内存管理机制...建议看看相关资料...
要认识到何为面向对象。
这个java内存管理有关系么?
你前面说的还有点道理
再有: java中内存不用程序员来手动控制的。他有垃圾回收机制,在对象没有引用时,会自动被回收。你这个考虑还是有点多余,