faster java -提升后台代码的运行效率:第一章

	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.要想搞清楚业务逻辑:多研究数据库表及表关系
	

猜你喜欢

转载自blog.csdn.net/wslixiaoliang/article/details/81004328