技術(shù)債(1)-如何避免嚴(yán)重的技術(shù)債

1、判斷double或Double類型的變量用法

? ? 不好的寫法:double amount = 1.0; ?if(amount == 0) {}

? ?正確的寫法:if(Double.doubleToLongBits(amount) == 0)){}

? doubleToLongBits根據(jù)浮點(diǎn)雙精度格式位布局,返回值表示浮點(diǎn)數(shù)的位。

2、try--catch中的異常信息,一定要捕獲

? ? ? 以下兩種寫法都會(huì)產(chǎn)生嚴(yán)重的技術(shù)債:

1)try---catch(Exception e) {logger.error("異常信息")}

2)try--catch(Exception e){e.printStackTrace();}

正確的寫法:try---catch(Exception e) {logger.error("異常信息:{}", e)}

3、new BigDecimal的正確寫法

錯(cuò)誤寫法:BigDecimal dString= new BigDecimal(num1 * Math.pow(10d, num2));

正確寫法:BigDecimal dString= BigDecimal.valueOf(num1 * Math.pow(10d, num2));

4、java transient關(guān)鍵字

? ?錯(cuò)誤的寫法:private Object data;

? ?正確的寫法:private transient Object data;

? ? ?有些類的有些屬性需要序列化,而其他屬性不需要被序列化,打個(gè)比方,如果一個(gè)用戶有一些敏感信息(如密碼,銀行卡號(hào)等),為了安全起見(jiàn),不希望在網(wǎng)絡(luò)操作(主要涉及到序列化操作,本地序列化緩存也適用)中被傳輸,這些信息對(duì)應(yīng)的變量就可以加上transient關(guān)鍵字。換句話說(shuō),這個(gè)字段的生命周期僅存于調(diào)用者的內(nèi)存中而不會(huì)寫到磁盤里持久化。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容