性能瓶颈-项目中List的返回值

原文:http://www.javaeye.com/topic/569993

对于常见业务方法返回List对象时一般有二种方法:

1、返回含数据的数据的List对象,该对象可能为空

2、返回null

如下方法:

public List returnArray2(Object data){
if(data != null){
return (List) data;
}
return null;
}

一般使用时,

List list = xxxx.returnArray2(data);

这时候list都将具体指向一个内存,如果返回值为空时,list指向一个null的空内存,这时我们又要对list进行是否为null进行判断,量大时就可能对程序造成瓶颈。文章作者的解决方法是用Collections工具类的empty系列静态方法解决。

既如下代码:

public List returnArray2(Object data){
if(data == null){
return Collections.emptyList();
}
return (List) data;
}

此时如果为空返回的list将不存在为null的可能,并且empty系列方法是静态方法,所有引用都指向静态内存,不会生产和占用新的资源。不失为一个好的方法。

我们也可以自己编写自己的empty静态类,既每次都返回为空的静态的List、Map….对象。

我自己的一些理解,详细情况请大家访问原文和作者交流。

评论关闭。