最近公司一个已经稳定运行了1年的web系统出现了性能问题,响应速度非常慢,系统是不断注册新的模块的,每次增加新模块都会带来一定负载,虽然很快就断定是由于大量模块的配置文件加载与初始数据缓存本身占用了大量内容,导致留给用户操作内存空间小造成,最好的办法就是卸载无用模块和清理缓存数据,但领导还是坚持要求检查代码并消除浪费内存的低效代码,系统比较大,这件事做起来可不容易,呵呵…
在检查的时候,发现方法中对无数据集合类型的返回有2种方式,Null和new List,系统是由很多人开发的,根据代码上看很明显没有对这些细节形成统一的规范,不过也能理解…
随便找人问了问,然后告诉他们以后规范方面尽量统一,至于上面的问题返回null还是创建一个空内容数组,由于系统刚出现内存问题,几乎统一了意见,用null吧…
真是这样吗?创建新对象返回时为了避免客户端代码的空值验证,返回null值是为了减少开销,视乎都有道理。其实个人觉得不应该返回空,当然,这里暂时不考虑业务需要的情况。但内存开销怎么办?无数据集合基本上是不变的,开销应该是很低的,不过还是有两全其美的办法,不知道大家对Collections工具类的empty系列静态方法用的多不多,这些方法返回一个无内容集合,并且都是基于同一个对象实例,这样,就可以避免null值的验证和那一点开销了,建议大家大量使用
举例:
public List returnArray2(Object data){
if(data == null){
return Collections.emptyList();
}
return (List) data;
}
当然还有Collections.emptyMap()、Collections.emptySet(),原理是一样的
另外,也可以选择Collections的静态变量进行返回,其实上述方法中返回的就是下面的Collections中定义的静态变量:
public static final List EMPTY_LIST = new EmptyList();
public static final Set EMPTY_SET = new EmptySet();
public static final Map EMPTY_MAP = new EmptyMap();
在jdk1.5之前的版本使用只能使用静态变量的方式访问,具体可以见jdk源码
分享到:
相关推荐
C++2005调用C#Webservice接口返回值为List 本文将详细介绍C++2005如何调用C#Webservice接口返回值为List。首先,需要了解C#Webservice的基本概念和C++2005如何调用Webservice接口。 一、C#Webservice的基本概念 ...
"ASP.NET—001:GridView绑定List、页面返回值"的主题涉及了如何将数据源绑定到GridView以及处理页面间的数据传递。 首先,让我们深入理解GridView的绑定机制。在ASP.NET中,GridView可以绑定到各种数据源,包括但...
使用如下方式调用`strip()`方法去除List集合返回值中的中括号: ```java String listString = "[element1, element2, element3]"; String strippedString = StringUtils.strip(listString, "[]"); ``` 在完成上述...
// 实际项目中填充lstRes return Json(lstRes); } ``` 这个接口将返回一个包含多个`ORDER`对象的JSON数组给客户端。 - **Ok(T content)**:返回HTTP状态码200(OK)和指定的内容。 - **BadRequest()**: 返回...
在日常的软件开发过程中,良好的代码注释习惯对于项目的维护和团队协作至关重要。对于习惯了Visual Studio(简称VS)开发环境中的.NET开发者来说,按下`///+Tab`键即可自动生成带有参数和返回值的代码注释,这大大...
### 在服务器端获取CheckBoxList控件最后选择项的方法 #### 一、背景介绍 在Web开发中,`CheckBoxList`控件是一种...在实际项目中,可以根据具体需求对以上代码进行适当的调整和优化,以更好地满足业务逻辑的需求。
用惯了WPF的绑定,ASP.NET的绑定貌似不是很好用。下面看看ASP.NET绑定的用法。一般来说可以直接绑定DataTable的,不过我觉得绑定List比较...项目结构: 效果: 实体类 代码如下:public class PersonModel { private i
在Java开发中,有时我们需要将数据集合,如List,传递给数据库中的存储过程进行处理。这个过程涉及到Java的JDBC(Java Database Connectivity)操作、集合处理以及与数据库交互的细节。下面将详细讲解如何在Java中...
在本文中,我们将深入探讨如何在SpringBoot项目中整合MyBatis,并利用PageHelper插件实现接口返回值的分页功能。SpringBoot以其简洁、快速的特性,成为了现代Java开发中的首选框架,而MyBatis作为轻量级的持久层框架...
在Java编程中,将List对象传递给存储过程是一项常见的任务,特别是在进行数据库操作时。存储过程是数据库中预编译的SQL语句集合,可以接受参数、返回结果集以及执行复杂的业务逻辑。以下是对这个主题的详细阐述: 1...
【标题】:在Java EE环境中,使用Apache CXF与Spring框架整合实现Web服务,返回List、Bean、String、JSON及XML的完整项目实例 【描述】:本项目旨在展示如何在Java企业级应用(Java EE)中,通过Apache CXF框架创建...
1. **配置DWR**: 首先,你需要在项目中配置DWR。这通常包括创建`dwr.xml`配置文件,定义允许客户端调用的服务器端类和方法。例如,你可以指定一个包含集合返回值的方法: ```xml ``` 这里`MyClass`是...
在这个压缩包中,你将找到一系列DWR的例子,涵盖了多种数据类型的返回值,这些例子旨在帮助初学者更好地理解和使用DWR。 1. **基本数据类型**: DWR支持Java的基本数据类型,如int、double、String等。通过DWR,你...
本资源“商业编程-源码-在List Control中实现列表项目的上下移动.zip”提供了一种方法,允许用户在列表控件中上下移动列表项,这对于创建具有动态排序功能的应用程序非常有用。本文将深入探讨如何实现这一功能,并...
根据给定的信息,本文将详细解释如何在编程中快速选择列表(List)中的所有项目,并深入探讨其中涉及到的关键概念和技术。 ### 一、快速选择列表(List)中的所有项目 #### 1.1 概述 在许多应用程序中,列表(List)是...
在C++编程中,MFC(Microsoft Foundation Classes)是一个用于构建Windows应用程序的类库,它提供了许多方便的类,使得开发者能够更容易地处理...通过ListDemo项目中的示例,开发者可以更直观地了解并实践这些知识点。
在实际应用中,`ColoredListCtrl`这个文件可能是实现颜色设置功能的一个类或一个示例项目。它可能扩展了CListCtrl,提供了更加方便的方法来设置不同项或子项的颜色,比如根据条件改变颜色,或者支持高亮、选中状态下...
在提供的`ListCtrlDemo` 文件中,可能包含一个示例项目,演示了如何创建、填充并排序`CListCtrl` 控件。`www.pudn.com.txt` 可能包含了项目的相关说明或源代码。 ### 结论 `CListCtrl` 在MFC编程中扮演着重要角色,...
标题中的"list_lru.rar_Always"提示我们关注的是一个与LRU(Least Recently Used,最近最少使用)算法相关的代码库或项目。LRU是一种常用的缓存淘汰策略,当缓存满时,它会优先淘汰最久未使用的数据。在这个上下文中...