1.对变量的计算尽可能的少。在系统中,每次对方法的调用,即使方法中只有简单的语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等等
for (int i = 0; i < list.size(); i++)
{...}
替换为:
for (int i = 0, int length = list.size(); i < length; i++)
{...}
这样,在 list.size() 很大的时候,就减少了很多系统消耗
2循环中不要不断创建对象引用
for(String groupCode:paramAddReq.getParamGroupCode()){
ParamInterGroupEntity interGroupEntity = new ParamInterGroupEntity();
interGroupEntity.setParamId(insertEntity.getId().toString());
interGroupEntity.setParamGroupCode(groupCode);
}
这种做法会导致内存中有 count 份 Object 对象引用存在,count 很大的话,就耗费内存了
ParamInterGroupEntity interGroupEntity = new ParamInterGroupEntity();
for(String groupCode:paramAddReq.getParamGroupCode()){
interGroupEntity.setParamId(insertEntity.getId().toString());
interGroupEntity.setParamGroupCode(groupCode);
paramInterGroupMapper.addParamInterGroup(interGroupEntity);
}
这样的话,内存中只有一份 Object 对象引用,每次 new Object() 的时候,Object 对象引用指向不同的 Object 罢了,但是内存中只有一份,这样就大大节省了内存空间了
3.使用equals将常量写在前面避免空指针异常
4.尽量避免是用static方法 要知道,当某个对象被定义为static的变量所引用,那么 gc 通常是不会回收这个对象所占有的堆内存的
5.如无必要不对数组进行tostring(),没有意义 但是本身对集合进行tostring()是可以的,因为集合的父类 AbstractCollections 重写了 Object 的 toString() 方法
日常用到的大致就这些吧