史蒂夫.喬布斯說,”復(fù)雜的終極境界是簡單“,同樣的優(yōu)雅的代碼一定是精簡明了,可讀性好。
使用LocalDate和LocalDateTime
LocalDate精確到日期,LocalDateTime精確到時分秒。優(yōu)化前14行代碼
-
try {
-
SimpleDateFormat sdfDay = new SimpleDateFormat("yyyy-MM-dd");
-
SimpleDateFormat sdfMins = new SimpleDateFormat("yyyy-MM-dd HHss");
-
Date now = new Date();
-
String today = sdfDay.format(now);
-
String waterStart = today + " 0300";
-
String waterEnd = today + " 0400";
-
Date waterStartTime = sdfMins.parse(waterStart);
-
Date waterEndTime = sdfMins.parse(waterEnd);
-
} catch (ParseException pe) {
-
return XX;
-
}
優(yōu)化后3行代碼
-
LocalDateTime now = LocalDateTime.now();
-
LocalDateTime waterStart = LocalDateTime.of(now.getYear(), now.getMonth(),now.getDayOfMonth(),3,0);
-
LocalDateTime waterEndTime =LocalDateTime.of(now.getYear(), now.getMonth(),now.getDayOfMonth(),4,0);
默認值使用Optional
優(yōu)化前五行
-
if (null == status) {
-
param.put("status", new ArrayList<String>());
-
} else {
-
param.put("status", status);
-
}
優(yōu)化后一行,使用JDK8的Optional
-
Optional.ofNullable(status).orElse(new ArrayList<String>());
如果是字符串可以用
-
StringUtils.defaultIfEmpty(status,"")
字符串累加
字符串只要不在for循環(huán)里累加,可以直接用+號,因為編譯成字節(jié)碼后會變成StringBuilder,如果在for循環(huán)里面用+號會生成多個StringBuilder,所以在for循環(huán)里累加最好在循環(huán)外創(chuàng)建StringBuilder。優(yōu)化前五行
-
StringBuffer sblog = new StringBuffer();
-
sblog.append("waterDriven|sellerId=");
-
sblog.append(request.getSellerTaobaoId());
-
sblog.append("|result=");
-
sblog.append(isSuccess);
優(yōu)化后一行
-
String sblog="waterDriven|sellerId="+request.getSellerTaobaoId()+"|result="+isSuccess;
以上場景用逗號和等號連接數(shù)據(jù),使用GUAVA的Joiner更精簡,可讀性更好
-
String sblog=Joiner.on("|").withKeyValueSeparator("=").join(ImmutableMap.of("sellerId", request.getSellerTaobaoId(), "result", isSuccess))
LIST TO MAP
優(yōu)化前4行
-
Map<String, String> AssetsMetaIdMap = Maps.newHashMap();
-
for (AssetsInfoBO assetsInfoBO : request.getAssetsCollectionList()) {
-
AssetsMetaIdMap.put(assetsInfoBO.getAssetMetadataId(), assetsInfoBO.getAssetMetadataId());
-
}
優(yōu)化后1行
-
Map<String, String> AssetsMetaIdMap = request.getAssetsCollectionList().stream().collect(Collectors.toMap(Hosting::getAssetMetadataId, Hosting::getAssetMetadataId));
如果key重復(fù)會拋出異常
-
Exception in thread "main" java.lang.IllegalStateException: Duplicate key 80000
減少不需要的判斷
優(yōu)化前5行
-
String requestId = null;
-
if (null != request.getExtData()) {
-
requestId = request.getExtDataValue(REQUEST_ID_KEY);
-
}
-
return requestId;
優(yōu)化后1行
-
return request.getExtDataValue(REQUEST_ID_KEY);
去掉else
優(yōu)化前5行
-
if (null != result && StringUtils.isNotBlank(no)) {
-
return no;
-
} else {
-
throw new RuntimeException("XX");
-
}
優(yōu)化后4行
-
if (null != result && StringUtils.isNotBlank(no)) {
-
return no;
-
}
-
throw new RuntimeException("XX");
不要返回布爾
優(yōu)化前5行
-
if ("true".equalsIgnoreCase(value.toString())) {
-
invoke = true;
-
} else {
-
invoke = false;
-
}
優(yōu)化后一行
-
invoke = "true".equalsIgnoreCase(value.toString());
使用級聯(lián)
優(yōu)化前5行
-
ParamBO paramBO = new ParamBO();
-
paramBO.setId(1);
-
paramBO.setName(”ifeve“);
-
paramBO.setOld(7);
優(yōu)化后1行
-
new ParamBO().withId(1).withName("ifeve").withOld(7);
-End-
審核編輯 :李倩
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
原文標(biāo)題:幾個代碼瘦身優(yōu)化的案例
文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
相關(guān)推薦
近日,高通正式推出了專為汽車應(yīng)用而設(shè)計的Snapdragon Elite平臺。該平臺搭載了高通最新的Oryon中央處理器,旨在為下一代汽車提供更智能、更高效的體驗。 作為高通數(shù)字底盤(Snapdragon Digital Chassis)的重要組成部分,Snapdragon Elite平臺進一步豐富了高通在汽車領(lǐng)域的技術(shù)布局。通過該平臺,高通將為用戶帶來更加先進、更加豐富的汽車智能化解決方案。 高通提供了兩種主要的平臺選擇:Snapdragon Cockpit Elite和Snapdragon Ride Elite。其中,Snapdragon Cockpit Elite專注
發(fā)表于 10-23 11:11
?5次閱讀
在全球汽車電子產(chǎn)業(yè)迅猛發(fā)展的背景下,IAR與蘇州旗芯微半導(dǎo)體有限公司(簡稱“旗芯微”)攜手宣布了一項重大合作成果:IAR Embedded Workbench for Arm 9.60.2版本現(xiàn)已實現(xiàn)對旗芯微車規(guī)級MCU的全面支持,旨在為汽車行業(yè)打造更加高效、安全且智能的開發(fā)解決方案。
發(fā)表于 10-23 11:09
?18次閱讀
近日,OpenAI 宣布了一個重要的更新,將其 ChatGPT 高級語音模式擴展到了歐盟、瑞士、冰島、挪威和列支敦士登等地區(qū)。這一功能最初在今年5月推出時,僅限于美國的 Plus 和 Team 用戶,隨后在上個月擴展到了英國用戶?,F(xiàn)在,歐盟等多地區(qū)的 ChatGPT Plus 和 Team 用戶也可以享受到這一便捷的功能。 ChatGPT 高級語音模式的一大亮點在于其快速的響應(yīng)時間。據(jù) OpenAI 介紹,該功能能夠在平均320毫秒的時間內(nèi)響應(yīng)音頻輸入,而實際響應(yīng)時間更是達到了232毫秒,這幾
發(fā)表于 10-23 11:08
?15次閱讀
本文主要介紹Vanchip的兩款產(chǎn)品,VC5337+VC5788。
發(fā)表于 10-23 11:06
?7次閱讀
一、變頻電機的控制原理 變頻電機的控制原理是通過改變電機的供電頻率和電壓,實現(xiàn)對電機轉(zhuǎn)速的精確控制。這種控制方式具有以下特點: 變壓變頻(VVVF)控制:變壓變頻控制是通過改變電機的供電電壓和頻率,實現(xiàn)對電機轉(zhuǎn)速的控制。這種控制方式可以實現(xiàn)電機的無級調(diào)速,具有較好的啟動性能和調(diào)速性能。 矢量控制:矢量控制是一種先進的電機控制技術(shù),通過對電機的磁通和轉(zhuǎn)矩進行獨立控制,實現(xiàn)對電機轉(zhuǎn)速的精確控制。矢量控制可以提高電
發(fā)表于 10-23 11:05
?17次閱讀
全球領(lǐng)先的半導(dǎo)體解決方案提供商瑞薩電子(股票代碼:TSE:6723)今日正式揭曉了其最新的RX261與RX260微控制器(MCU)系列。這兩款64MHz的MCU以卓越的能效比脫穎而出,工作模式下功耗低至69微安/兆赫茲,待機模式下更是僅為1微安。此外,它們還助力設(shè)計師輕松打造具備防水功能的電容式觸控傳感器,并融入了強大的安全性能。憑借出色的性能與功能的完美結(jié)合,RX261/RX260系列廣泛應(yīng)用于家用電器、樓宇及工廠自動化領(lǐng)域,同時也適用于智能鎖、電動自行車及便攜式熱敏打印機等多種場景。
發(fā)表于 10-23 11:02
?25次閱讀
減速電機是一種將電能轉(zhuǎn)換為機械能的設(shè)備,通過內(nèi)置的減速機構(gòu)來降低電動機的轉(zhuǎn)速,同時增加輸出扭矩。這種設(shè)備廣泛應(yīng)用于各種工業(yè)和自動化領(lǐng)域,以滿足不同的動力需求。 齒輪減速電機 應(yīng)用領(lǐng)域 :廣泛應(yīng)用于輸送帶、升降機、攪拌器等需要精確控制速度和扭矩的場合。 特點 :結(jié)構(gòu)緊湊,安裝方便,維護簡單,能夠提供多種減速比。 行星減速電機 應(yīng)用領(lǐng)域 :常用于機器人、機床、自動化設(shè)備等需要高扭矩和高效率的場合。 特點 :體積小,重
發(fā)表于 10-23 11:02
?21次閱讀
10月22日,彭博社報道指出,菲律賓正積極尋求與中國臺灣地區(qū)的芯片行業(yè)領(lǐng)軍企業(yè)合作,旨在推動其半導(dǎo)體產(chǎn)業(yè)的發(fā)展,并努力追趕在該領(lǐng)域已成為重要供應(yīng)商的周邊國家。
發(fā)表于 10-23 11:01
?27次閱讀
近日,自動化AI代理領(lǐng)域的初創(chuàng)公司CrewAI宣布成功獲得總計1800萬美元的融資。本輪融資由Boldstart Ventures牽頭的初創(chuàng)輪融資和Insight Partners主導(dǎo)的A輪融資共同組成。 伴隨著融資的成功,CrewAI推出了其Enterprise平臺的新功能,包括自我迭代、性能評估、持久記憶以及多種代理協(xié)作結(jié)構(gòu)等。這些新功能的加入,使得CrewAI Enterprise能夠更好地滿足大型組織對于復(fù)雜AI代理設(shè)計、測試和大規(guī)模部署的需求。 CrewAI的創(chuàng)始人兼CEO Moura表示:“通過CrewAI Enterprise的推出,我
發(fā)表于 10-23 11:00
?29次閱讀
大概之前的有關(guān)MCS對應(yīng)速率的內(nèi)容,都是直接給出了表格,并沒有仔細分析該如何計算,今天我們就以11ac為例,看看對應(yīng)不同的MCS,速率是如何算出來的。注意都是理論速率。
發(fā)表于 10-23 11:00
?28次閱讀
磁阻同步電動機(Reluctance Synchronous Motor)是一種同步電動機,它利用磁阻的變化來產(chǎn)生轉(zhuǎn)矩。這種電動機在結(jié)構(gòu)和工作原理上與永磁同步電動機和感應(yīng)電動機有所不同。磁阻同步電動機具有較高的效率、良好的動態(tài)性能和較低的制造成本等優(yōu)點,因此在工業(yè)自動化、電動汽車等領(lǐng)域得到了廣泛的應(yīng)用。 磁阻同步電動機的特點主要包括以下幾個方面: 結(jié)構(gòu)簡單:磁阻同步電動機的結(jié)構(gòu)相對簡單,主要由定子、轉(zhuǎn)子和軸承等部件組成。定子通常采用三相繞
發(fā)表于 10-23 10:57
?24次閱讀
電感是由導(dǎo)線繞成的線圈,用于增加穿過線圈間的磁鏈數(shù),最終增加該線圈的自感系數(shù)。
發(fā)表于 10-23 10:56
?30次閱讀
單相異步電動機是一種常見的交流電動機,它主要應(yīng)用于家庭和工業(yè)領(lǐng)域,如空調(diào)、洗衣機、風(fēng)扇等家用電器以及一些小型機械設(shè)備。單相異步電動機的主要特點是結(jié)構(gòu)簡單、成本低廉、維護方便、運行可靠,但與三相異步電動機相比,其啟動性能和運行效率略低。 一、工作原理 單相異步電動機的工作原理基于電磁感應(yīng)和電磁力的作用。當(dāng)單相交流電源通過電動機的定子繞組時,會產(chǎn)生一個旋轉(zhuǎn)磁場。這個旋轉(zhuǎn)磁場與轉(zhuǎn)子繞組中的電流相互作用,產(chǎn)生
發(fā)表于 10-23 10:54
?22次閱讀
交流異步電動機,也稱為感應(yīng)電動機,是一種利用交流電驅(qū)動的電動機。它的基本原理是利用電磁感應(yīng)和電磁力來產(chǎn)生旋轉(zhuǎn)力矩,從而實現(xiàn)機械能的轉(zhuǎn)換。以下是對交流異步電動機基本原理的簡單分析: 電磁感應(yīng)原理:交流異步電動機的工作原理基于法拉第電磁感應(yīng)定律。當(dāng)交流電流通過電動機的定子繞組時,會在定子和轉(zhuǎn)子之間產(chǎn)生旋轉(zhuǎn)磁場。這個旋轉(zhuǎn)磁場會在線圈中產(chǎn)生感應(yīng)電動勢,進而產(chǎn)生感應(yīng)電流。 電磁力:當(dāng)轉(zhuǎn)子中的感應(yīng)電流遇到旋轉(zhuǎn)磁場
發(fā)表于 10-23 10:53
?26次閱讀
隨著國內(nèi)汽車零部件制造水平不斷提升以及新能源汽車的發(fā)展,汽車零部件行業(yè)也得到了快速發(fā)展。2021年我國汽車零部件制造企業(yè)收入規(guī)模為40668億元,同比增長12%,2022年約為41953億元,2023年進一步增長至44086億元。這么多零部件的企業(yè),需要更多的車規(guī)級的器件。
發(fā)表于 10-23 10:52
?29次閱讀
評論