欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

寫(xiě)Java代碼的一些技巧分享

Linux愛(ài)好者 ? 來(lái)源:CSDN技術(shù)社區(qū) ? 作者:CSDN技術(shù)社區(qū) ? 2022-03-16 12:05 ? 次閱讀

1. 定義配置文件信息

有時(shí)候我們?yōu)榱私y(tǒng)一管理會(huì)把一些變量放到 yml 配置文件中

例如

02242698-9330-11ec-952b-dac502259ad0.png用 @ConfigurationProperties 代替 @Value

使用方法

定義對(duì)應(yīng)字段的實(shí)體


		

@Data // 指定前綴 @ConfigurationProperties(prefix = "developer") @Component public class DeveloperProperty { privateStringname; privateStringwebsite; privateStringqq; privateStringphoneNumber; }

@Data
// 指定前綴
@ConfigurationProperties(prefix = "developer")
@Component
public class DeveloperProperty {
privateStringname;
privateStringwebsite;
privateStringqq;
privateStringphoneNumber;
}

使用時(shí)注入這個(gè)bean

@RestController
@RequiredArgsConstructor
public class PropertyController {

finalDeveloperPropertydeveloperProperty;

@GetMapping("/property")
publicObjectindex() {
returndeveloperProperty.getName();
}
}

2. 用@RequiredArgsConstructor代替@Autowired

我們都知道注入一個(gè) bean 有三種方式哦(set 注入, 構(gòu)造器注入, 注解注入),Spring 推薦我們使用構(gòu)造器的方式注入 Bean

我們來(lái)看看上段代碼編譯完之后的樣子

0233b2ac-9330-11ec-952b-dac502259ad0.png

RequiredArgsConstructor:lombok提供

3.代碼模塊化

阿里巴巴 Java 開(kāi)發(fā)手冊(cè)中說(shuō)到每個(gè)方法的代碼不要超過(guò) 50 行(我沒(méi)記錯(cuò)的話),在實(shí)際的開(kāi)發(fā)中我們要善于拆分自己的接口或方法, 做到一個(gè)方法只處理一種邏輯, 說(shuō)不定以后某個(gè)功能就用到了, 拿來(lái)即用。

02455552-9330-11ec-952b-dac502259ad0.png

4. 拋異常而不是返回

在寫(xiě)業(yè)務(wù)代碼的時(shí)候,經(jīng)常會(huì)根據(jù)不同的結(jié)果返回不同的信息,盡量減少返回,會(huì)顯得代碼比較亂

反例

02590b1a-9330-11ec-952b-dac502259ad0.png

正例

0271cdd0-9330-11ec-952b-dac502259ad0.png

5. 減少不必要的db

盡可能的減少對(duì)數(shù)據(jù)庫(kù)的查詢

舉例子

刪除一個(gè)服務(wù)(已下架或未上架的才能刪除),之前有看別人寫(xiě)的代碼,會(huì)先根據(jù)id查詢?cè)撚涗?,然后做一些判?/span>

反例

0280841a-9330-11ec-952b-dac502259ad0.png

正例

029af908-9330-11ec-952b-dac502259ad0.png

6. 不要返回 null

反例

02a9a516-9330-11ec-952b-dac502259ad0.png

正例

02c1b75a-9330-11ec-952b-dac502259ad0.png

別處調(diào)用方法時(shí),避免不必要的空指針

7. if else

不要太多了if else if,可以試試策略模式代替

8. 減少controller業(yè)務(wù)代碼

業(yè)務(wù)代碼盡量放到service層進(jìn)行處理,后期維護(hù)起來(lái)也好操作而且美觀

反例

02d39c40-9330-11ec-952b-dac502259ad0.png

正例

02e887e0-9330-11ec-952b-dac502259ad0.png

9. 利用好Idea

目前為止市面上的企業(yè)基本都用idea作為開(kāi)發(fā)工具了吧

舉一個(gè)小例子

idea會(huì)對(duì)我們的代碼進(jìn)行判斷,提出合理的建議

例如:

02ff01b4-9330-11ec-952b-dac502259ad0.png

它推薦我們用lanbda的形式代替,點(diǎn)擊replace

0312136c-9330-11ec-952b-dac502259ad0.png

10. 閱讀源碼

一定要養(yǎng)成閱讀源碼的好習(xí)慣包括優(yōu)秀的開(kāi)源項(xiàng)目GitHub上stars:>1000, 會(huì)從中學(xué)好好多知識(shí)包括其對(duì)代碼的設(shè)計(jì)思想以及高級(jí)API,面試加分(好多面試官習(xí)慣問(wèn)源碼相關(guān)的知識(shí))

11. 設(shè)計(jì)模式

23種設(shè)計(jì)模式,要嘗試代碼中運(yùn)用設(shè)計(jì)模式思想,寫(xiě)出的代碼即規(guī)范又美觀還高大上哈哈。

12. 擁抱新知識(shí)

像我們這種工作年限少的程序員,我覺(jué)得要多學(xué)習(xí)自己認(rèn)知之外的知識(shí),不能每天crud,有機(jī)會(huì)就多用用有點(diǎn)難度的知識(shí),沒(méi)有機(jī)會(huì)(項(xiàng)目較傳統(tǒng)),可以自己下班多些相關(guān)demo練習(xí)

13. 基礎(chǔ)問(wèn)題

map遍歷
HashMap<String, String> map = newHashMap<>();
map.put("name", "du");
for(Stringkey : map.keySet()) {
Stringvalue = map.get(key);
}

map.forEach((k, v) -> {

});

// 推薦
for(Map.Entry<String, String> entry : map.entrySet()) {

}

optional 判空
//獲取子目錄列表
publicList getChild(String pid) {
if(V.isEmpty(pid)) {
pid = BasicDic.TEMPORARY_DIRECTORY_ROOT;
}
CatalogueTreeNode node = treeNodeMap.get(pid);

returnOptional.ofNullable(node)
.map(CatalogueTreeNode::getChild)
.orElse(Collections.emptyList());
}

遞歸

大數(shù)據(jù)量的遞歸時(shí),避免在遞歸方法里new對(duì)象,可以試試把對(duì)象當(dāng)作方法參數(shù)進(jìn)行傳遞使用

注釋

類 接口方法 注解 較復(fù)雜的方法 注釋都要寫(xiě)而且要寫(xiě)清楚, 有時(shí)候?qū)懽⑨尣皇墙o別人看的 而是給自己看的

14. 判斷元素是否存在

hashSet 而不是 list,list 判斷一個(gè)元素是否存在的代碼

ArrayList list= newArrayList<>();

// 判斷a是否在list中

for(inti = 0; i < list.size(); i++)
if("a".equals(elementData[i]))
returni;

由此可見(jiàn)其復(fù)雜度為On,而hashSet底層采用hashMap作為數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ),元素都放到map的key(即鏈表中)

HashSet set= newHashSet<>();

// 判斷a是否在set中

intindex = hash(a);

returngetNode(index) != null

由此可見(jiàn)其復(fù)雜度為O1。


		

原文標(biāo)題:14 個(gè)寫(xiě) Java 的習(xí)慣

文章出處:【微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 信息
    +關(guān)注

    關(guān)注

    0

    文章

    407

    瀏覽量

    35598
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    571

    瀏覽量

    24826
  • 配置
    +關(guān)注

    關(guān)注

    1

    文章

    189

    瀏覽量

    18461

原文標(biāo)題:14 個(gè)寫(xiě) Java 的習(xí)慣

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MSP432的一些簡(jiǎn)單代碼

    自己寫(xiě)一些MSP432的簡(jiǎn)單代碼,有GPIO操作,串口通信(串口通信和延時(shí)函數(shù)按照原子MINIstm32封裝好了),外部中斷,定時(shí)器中斷以及PWM。其中SPI通信的代碼寫(xiě)好還未進(jìn)行測(cè)
    發(fā)表于 03-02 14:11

    關(guān)于java性能優(yōu)化的一些細(xì)節(jié)

    代碼優(yōu)化 ,個(gè)很重要的課題。可能有些人覺(jué)得沒(méi)用,一些細(xì)小的地方有什么好修改的,改與不改對(duì)于代碼的運(yùn)行效率有什么影響呢?這個(gè)問(wèn)題我是這么考慮的,就像大海里面的鯨魚(yú)
    發(fā)表于 10-11 09:23

    JAVA中關(guān)于this和that的一些知識(shí)

    。 。 this 在哪里? 在上篇《從 Java 作用域說(shuō)開(kāi)去》分析中,我們知道,在 Execution Context 中有個(gè)屬性是 this,這里的 this 就是我們所說(shuō)的 this 。this 與上下文中可執(zhí)行
    發(fā)表于 09-25 14:55 ?0次下載

    java異常處理設(shè)計(jì)和一些建議

    出錯(cuò)從哪里尋找出錯(cuò)的根源?但是如果個(gè)項(xiàng)目異常處理設(shè)計(jì)地過(guò)多,又會(huì)嚴(yán)重影響到代碼質(zhì)量以及程序的性能。因此,如何高效簡(jiǎn)潔地設(shè)計(jì)異常處理是門(mén)藝術(shù),本文下面先講述Java異常機(jī)制最基礎(chǔ)的知
    發(fā)表于 09-28 11:48 ?0次下載
    <b class='flag-5'>java</b>異常處理設(shè)計(jì)和<b class='flag-5'>一些</b>建議

    關(guān)于java一些基礎(chǔ)知識(shí)解析

    j2ee 全稱Java 2 Enterprise Edition,是Java種企業(yè)版,用于企業(yè)級(jí)應(yīng)用開(kāi)發(fā)。 j2se 全稱Java 2 Standard Edi
    的頭像 發(fā)表于 02-05 14:43 ?4824次閱讀
    關(guān)于<b class='flag-5'>java</b>的<b class='flag-5'>一些</b>基礎(chǔ)知識(shí)解析

    DSP的一些代碼資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是DSP的一些代碼資料免費(fèi)下載。
    發(fā)表于 12-24 08:00 ?25次下載

    Java一些基礎(chǔ)面試題資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Java一些基礎(chǔ)面試題資料合集免費(fèi)下載。目錄,1.Java基礎(chǔ)知識(shí)篇 2.Java web基礎(chǔ)知識(shí)總結(jié) 3.Java
    發(fā)表于 05-10 18:13 ?0次下載
    <b class='flag-5'>Java</b>的<b class='flag-5'>一些</b>基礎(chǔ)面試題資料合集免費(fèi)下載

    IT工程師之間對(duì)接代碼一些

    最近沉浸在代碼的世界里,沒(méi)什么輸入,也沒(méi)什么輸出,今天說(shuō)說(shuō)碼農(nóng)之間對(duì)接代碼一些事吧。
    的頭像 發(fā)表于 05-07 16:49 ?3056次閱讀

    對(duì)于代碼規(guī)范的一些總結(jié)

    都說(shuō)代碼是程序員的第二張臉,長(zhǎng)時(shí)間下來(lái),寫(xiě)的好的代碼定會(huì)受到大家的尊重。遵循一些簡(jiǎn)單的規(guī)范,寫(xiě)干凈
    的頭像 發(fā)表于 12-08 10:21 ?3434次閱讀

    由淺入深的了解Java虛擬機(jī)

    說(shuō)到Java虛擬機(jī),相信作為Java程序員的小伙伴們都不陌生,他們每天都在寫(xiě)Java代碼,寫(xiě)
    的頭像 發(fā)表于 01-01 17:50 ?2362次閱讀

    機(jī)器學(xué)習(xí)的一些代碼示例合集

    本文檔的主要內(nèi)容詳細(xì)介紹的是機(jī)器學(xué)習(xí)的一些代碼示例合集。
    發(fā)表于 04-29 08:00 ?1次下載
    機(jī)器學(xué)習(xí)的<b class='flag-5'>一些</b><b class='flag-5'>代碼</b>示例合集

    分享一些Python代碼加速工具

    這篇文章會(huì)提供一些優(yōu)化代碼的工具。會(huì)讓代碼變得更簡(jiǎn)潔,或者更迅速。
    發(fā)表于 07-07 11:18 ?415次閱讀

    用了Stream后,代碼反而越寫(xiě)越丑?

    Java中,同樣的功能,代碼行數(shù)寫(xiě)的少了,并不見(jiàn)得你的代碼就好。由于Java使用;作為代碼行的
    的頭像 發(fā)表于 08-23 15:08 ?511次閱讀

    單片機(jī)C代碼嵌套匯編的一些方法

    單片機(jī)C代碼嵌套匯編的一些方法
    的頭像 發(fā)表于 10-18 16:39 ?585次閱讀
    單片機(jī)C<b class='flag-5'>代碼</b>嵌套匯編的<b class='flag-5'>一些</b>方法

    java反編譯的代碼可以修改么

    的影響。 1. Java反編譯工具 在Java反編譯領(lǐng)域,有一些知名的工具可以幫助開(kāi)發(fā)者將字節(jié)碼轉(zhuǎn)換回源代碼。這些工具包括: JD-GUI :
    的頭像 發(fā)表于 09-02 11:00 ?826次閱讀