arraylist静态变量,并发的时候会出现数据问题吗

代码编写情况: 1:在自动加载的service里 调用Integer id = NodesUtils.getParentNodes(cityid);(我怀疑这句话取出值的时候id 会取错值)2:工具类的静态方法如下,nodeList 为全局变量 public static Integer getParentNodes(Integer childid) {        if(nodeList == null && childid == null) return null;        Node parentNode = new Node();        for(Node mu: nodeList){              //遍历出父id等于参数的id,add进子节点集合           //Integer比较特别,不能直接拿两个Integer比较,相同值却有可能结果为false            if(mu.getId().intValue() == childid.intValue()){               parentNode = mu;             break;            }          }          return parentNode!=null&&parentNode.getParentId()!=null?parentNode.getParentId():0;    } 我: 3:此为工具类所有代码public  class NodesUtils { private  static List<Node>  nodeList=new ArrayList<Node>(); static{ init(); } private static List<Node> init(){ Node node1 = new Node( 100,"北京",10 ); Node node2 = new Node( 2600,"天津",10 ); Node node3 = new Node( 909,"唐山",10 ); nodeList.add(node1); nodeList.add(node2); nodeList.add(node3); } } 我怀疑1处的代码会不会在并发的时候 出现错误,然后第二个疑问是比如a,b,c同时登陆,这个list会不会加载多条相同记录?

慕粉3901988
浏览 1527回答 1
1回答

按照自己的节奏前行

我不喜欢看乱糟糟的代码
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java