1.数组转化成list(用于数据库mybatis forEach查询)
List<String> klgIds = Arrays.asList(ElasticSearchIndexUtil.IWraperL.splitStr(ids)));
2.使用方法前,先做判空处理;方法参数为null或者为空时直接return;
举例:
public void getKlgDocumentInfo(Map<String,Object> inputMap, List<CsfInputObject> inputList){
if( null == inputMap || inputMap.isEmpty() ) return;
Map<String,Object> contents = new HashMap();
String ids = ElasticSearchIndexUtil.IWraperL._getStringValues(inputMap,ElasticSearchConst.ISystemL.IKlgIndex.KNWLG_ID);
String rangeId = ElasticSearchIndexUtil.IWraperL._getStringValues(inputMap,ElasticSearchConst.ISystemL.IKlgIndex.REGN_ID);
contents.put(ElasticSearchConst.ISystemL.KM_SUPPER_DISTRICT_INFO,rangeId);
if(StringUtil.isEmpty(ids)) return;
List<TKmKnowledge> klgList = _wrapKlgInfoByList(ids,rangeId);
_wrapRangIdInfoToMap(contents,rangeId);
_finishCreateKlgDocInfo(klgList,inputList,contents);
}
3.list集合转成数组:list.toArray()
List<String> districts = new ArrayList();
for( TKmDistrictConfig bean : districtList ){
String rangId = bean.getRegnId();
districts.add(rangId);
}
contents.put(ElasticSearchConst.ISystemL.KM_DISTRICT_INFO,districts.toArray(new String[]{}));
}
4.变量一旦被初始化(包含对象被new),那么变量肯定不为null,不为空(empty)
if( null == mergeKlg || mergeKlg.isEmpty() ) 判断为false;
5.后台代码(提升效率:需要注意以下几点)
(1)宗旨:一个字要“快”,而不是要看着清晰;并且能够用最少的代码量实现更多的功能;
(2)方法:一个方法只干一件事,同一个方法能复用就不要再写多个类似的方法,尽量复用,以较少冗余,提升效率;
(3)数据对象:如果多次使用同一个数据对象,只需查询一次然后存入上下文对象(如map),下面有用到的地方将其传参即可;
6.对象回收:如:map对象,再没有其他方法调用时,可以调用map.clear()方法将此对象回收;
举例:
Map<String,Object> map = aMap.get(key);
(1)调用方法1
(2)调用方法2
(3)调用方法3
此处以下已不再使用map对象,准备将其回收;
if(null!=map && !map.isEmpty() {
map.clear();
map = null;
}
总结:
(1)调用map.clear(),虽然将map对象的数据都清空了了,key和value均为null,但是内存中map对象还存在;并且map
具有强引用,虽然key和value为空,但是JVM的垃圾回收器并不会回收该对象的内存,如果再程序中创建很多这样子的没
有释放的对象就会造成内存泄漏;(2)所以再创建map对象的时候,如果不再用到该对象的时候,要及时调用:map = null 释放该对象
的内存空间。
7.要想搞清楚业务逻辑:多研究数据库表及表关系
faster java -提升后台代码的运行效率:第一章
猜你喜欢
转载自blog.csdn.net/wslixiaoliang/article/details/81004328
今日推荐
周排行