色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

寫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. 拋異常而不是返回

在寫業(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ù)(已下架或未上架的才能刪除),之前有看別人寫的代碼,會(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ì)模式思想,寫出的代碼即規(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ù)雜的方法 注釋都要寫而且要寫清楚, 有時(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è)寫 Java 的習(xí)慣

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

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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

    瀏覽量

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

    關(guān)注

    1

    文章

    578

    瀏覽量

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

    關(guān)注

    1

    文章

    191

    瀏覽量

    18828

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

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

收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

    自己一些MSP432的簡(jiǎn)單代碼,有GPIO操作,串口通信(串口通信和延時(shí)函數(shù)按照原子MINIstm32封裝好了),外部中斷,定時(shí)器中斷以及PWM。其中SPI通信的代碼寫好還未進(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ì)異常處理是門藝術(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 ?4927次閱讀
    關(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 ?3234次閱讀

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

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

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

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

    機(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 ?521次閱讀

    用了Stream后,代碼反而越越丑?

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

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

    單片機(jī)C代碼嵌套匯編的一些方法
    的頭像 發(fā)表于 10-18 16:39 ?785次閱讀
    單片機(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 ?1194次閱讀
    主站蜘蛛池模板: 99re久久超碰视频精品 | 青柠在线视频 | 在线观看成年人免费视频 | 国产成人精品视频频 | 婷婷久久综合九色综合伊人色 | 69精品人妻一区二区三区蜜桃 | ai换脸在线全集观看 | 琪琪see色原网色原网站 | 亚洲三级黄色片 | 久久精品电影久久电影大全 | 好大太快了快插穿子宫了 | 亚洲乱码中文字幕久久孕妇黑人 | 欲乱艳荡少寡妇全文免费 | 国产中文字幕一区 | 巨爆乳中文字幕爆乳区 | 国产精品亚洲污污网站入口 | 亚洲精品久久无码AV片WWW | 虫族bl文全肉高h | 久久噜国产精品拍拍拍拍 | 永久午夜福利视频一区在线观看 | 亚洲男人片片在线观看 | 久久免费高清 | 久久精品男人影院 | 欧美另类老女人 | 九九热最新视频 | 国产精品无码亚洲精品 | 欧美videos人牛交 | 欧美特级午夜一区二区三区 | 男人插曲女人下生免费大全 | cctv官网 | 在线不卡中文字幕 | 国产在线播放精品视频 | 亚洲精品天堂无码中文字幕影院 | 欧美午夜精品一区二区蜜桃 | 男女啪啪抽搐呻吟高潮动态图 | 九九精彩视频在线观看视频 | 真实国产熟睡乱子伦对白无套 | 99精品视频在线免费观看 | 久久中文电影 | 国产成人精品一区二区三区视频 | 亚洲熟妇无码乱子AV电影 |

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品