第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

FindBugs-IDEA匯總(整理中)

標(biāo)簽:
Java

主题001:低效使用keyset迭代,应该使用entrySet迭代

(Inefficient use of keySet iterator instead of entrySet iterator)

总结:

1,当遍历map,同时要获取key 和value时,推荐使用entrySet

示例功能与代码:

 Map<Integer, String> userMap = new HashMap<>(16);
 //填充数据
 //进行遍历key  和value,组装数据
 for (Integer key : userMap.keySet()) {
    list.add(new Test(key, userMap.get(key)));
 }`

优化后代码:

 Map<Integer, String> userMap = new HashMap<>(16);
	 //填充数据
	 //进行遍历key  和value,组装数据
	 for (Map.Entry<Integer, String> entry : userMap.entrySet()) {
            list.add(new TestData(entry.getKey(), entry.getValue()));
      }

为什么说,这种情况下,keyset效率会低点,
可以简单理解为,keyset是先遍历查询到key ,再用key去查询value
而entrySet是在找到key的时候,顺带着把value也带出来了。

主题002: 本地变量存储了闲置不用的对象

(dead store to local variable)

总结:

1,不要写多余的代码,不要声明多余的变量;

2,当需要删除业务代码时,记得把不再使用的变量也一并删除

3,在一定程度上,也可以防错,例如明明一个要用的变量,但并没有被使用,说明,要不漏写代码了,要不就某个地方写错了

示例功能与代码:

   public static void test20200310() {
        //本地变量存储了闲置不用的对象
        //dead store to local variable
        Integer num1 = 88;
        Integer num2 = 99;
        System.out.println(num2);
    }

方法中有2个变量,num1,num2, 但num2有使用,num1声明后并没有被使用,所以

Integer num1 = 88; 

这行代码要删除掉

主题003: 无用的对象被创建

(Useless object created)

总结:

1,和“本地变量存储了闲置不用的对象”还是有区别的,一个是只是被创建了,但一直就没用到,这个侧重于该对象被创建,也有使用,但实际无实际价值

2,每一行代码要有它本身的价值

示例功能与代码:

	public Result<String> selectStartEqpByTaskId(@RequestBody MoTaskIdParam param) {
        EqpNameListRes res = new EqpNameListRes();
        String eqpNameList = moTeamTaskService.selectStartEqpByTaskId(param, getUser());
        res.setEqpNameList(eqpNameList);
        return Result.ok(eqpNameList);
    }

优化后代码:

public Result<String> selectStartEqpByTaskId(@RequestBody MoTaskIdParam param) {
        String eqpNameList = moTeamTaskService.selectStartEqpByTaskId(param, getUser());
        return Result.ok(eqpNameList);
    }

上面的代码是一个查询方法,但可以看到方法体中的第一行代码实例化了一个EqpNameListRes,第三行也有使用,但实际返回时,和这个对象并没有关系。

主题004: 忽略了方法的返回值

(Method ignores return value)

总结:

1,准确使用方法,同时要细心

示例功能与代码:

public static  void test20200313(){
        //忽略了方法的返回值
        //Method ignores return value
        String replaceTest="aaaabbbcccaaa";
        //把 b 改为 B
        replaceTest.replace("b","B");
        //输出replaceTest变没变
        System.out.println(replaceTest);

        //把 b 改为 B,并接收
        replaceTest= replaceTest.replace("b","B");
        //重新输出replaceTest变没变
        System.out.println(replaceTest);
    }

输出结果:

aaaabbbcccaaa
aaaaBBBcccaaa

可以看到第一次输出,字符串本身并没有改变,第二次输出,才改变了。因为replace方法是返回了一个新对象,而不是直接修改字符串本身。
因此,在使用系统方法时,注意是否有返回值,是否是直接改变他本身

點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消