//数据库的map
List<CommandInfo> cmd_qzkc = commandsService.getCommandsByAppCode(1);
ApplicationListener.DBcmdMap.put("cmd_qzkc",cmd_qzkc);
List<CommandInfo> cmd_qzkc_hw = commandsService.getCommandsByAppCode(2);
ApplicationListener.DBcmdMap.put("cmd_qzkc_hw",cmd_qzkc_hw);
if(ApplicationListener.MemorycmdMap.isEmpty() && !ApplicationListener.DBcmdMap.isEmpty()){
synchronized (this) {
ApplicationListener.MemorycmdMap = ApplicationListener.DBcmdMap;
System.out.println("进入同步代码快");
System.out.println("MemorycmdMap.size:"+ApplicationListener.MemorycmdMap.size());
System.out.println("DBcmdMap.size:"+ApplicationListener.DBcmdMap.size());
}
}
ApplicationListener.DBcmdMap.put("cmd_qzkc_hw",new ArrayList<CommandInfo>());
System.out.println( "两个map比较是否相等呢?" +ApplicationListener.MemorycmdMap.equals(ApplicationListener.DBcmdMap));
List<CommandInfo> cmd_qzkc = commandsService.getCommandsByAppCode(1);
ApplicationListener.DBcmdMap.put("cmd_qzkc",cmd_qzkc);
List<CommandInfo> cmd_qzkc_hw = commandsService.getCommandsByAppCode(2);
ApplicationListener.DBcmdMap.put("cmd_qzkc_hw",cmd_qzkc_hw);
if(ApplicationListener.MemorycmdMap.isEmpty() && !ApplicationListener.DBcmdMap.isEmpty()){
synchronized (this) {
ApplicationListener.MemorycmdMap = ApplicationListener.DBcmdMap;
System.out.println("进入同步代码快");
System.out.println("MemorycmdMap.size:"+ApplicationListener.MemorycmdMap.size());
System.out.println("DBcmdMap.size:"+ApplicationListener.DBcmdMap.size());
}
}
ApplicationListener.DBcmdMap.put("cmd_qzkc_hw",new ArrayList<CommandInfo>());
System.out.println( "两个map比较是否相等呢?" +ApplicationListener.MemorycmdMap.equals(ApplicationListener.DBcmdMap));
两个map还是相等, 因为是静态的,在= 号的指针记住了。 一个map变化了。另外一个map跟着变化了。