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 nodeList=new ArrayList(); static{ init(); } private static List 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会不会加载多条相同记录? |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|