精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

小心陷阱!Java中常犯的10個錯誤

開發(fā) 后端
本文中筆者根據(jù)自己作為技術(shù)主管和面試官的經(jīng)驗,列出Java開發(fā)人員最常犯的錯誤,快看看自己是不是中槍了。

本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)

常在河邊走哪有不濕鞋,有些錯誤真的是防不勝防。然而,以筆者面試過從菜鳥到高級技術(shù)負(fù)責(zé)人,幾十位軟件工程師的經(jīng)歷看來,在更多情況下,候選人在對基本概念的掌握上是存在差距的。

本文中筆者根據(jù)自己作為技術(shù)主管和面試官的經(jīng)驗,列出Java開發(fā)人員最常犯的錯誤,快看看自己是不是中槍了。

[[322882]]

1. 忽略訪問修飾符

雖然有點莫名其妙,但候選者真的經(jīng)常忘記Java中protected訪問修飾符的作用域。也許是因為面試過程中過于焦慮和緊張,他們通常只能答出其一:

  • 可從子類訪問protected字段、方法和構(gòu)造函數(shù)。
  • 可從同一包中訪問protected字段、方法和構(gòu)造函數(shù)。

此外,包的作用域能幫助許多開發(fā)人員編寫自己的測試:可以從測試路徑訪問受保護(hù)的方法。所以忘記這個屬性等同于在面試中表明自己從來沒有編寫過測試! 

2. 字符串連接

如果使用大量字符串或大型字符串,則可能會在連接過程中浪費大量內(nèi)存。

小心陷阱!Java中常犯的10個錯誤

上述示例是創(chuàng)建一些StringBuilder和String對象:準(zhǔn)確來說,是10.000.000個StringBuilder和10.000.001個String。

解釋:

先退一步,看看發(fā)生了什么。

當(dāng)使用+運算符進(jìn)行字符串連接時,將創(chuàng)建一個中間對象,該對象存儲連接的結(jié)果后,將結(jié)果賦值給目標(biāo)對象。

小心陷阱!Java中常犯的10個錯誤

在如上示例中,一共創(chuàng)建了3個對象:2個用于文本,1個用于連接,即第一個字符串result的副本加上第二個字符串“world!”。因為String是不可變的,所以這種字符串連接是可以實現(xiàn)的。

但是編譯器是足夠智能的,可以將代碼轉(zhuǎn)化為以下內(nèi)容(Java9+不適用,因為它使用StringContactFacotry,但結(jié)果非常相似):

小心陷阱!Java中常犯的10個錯誤

此優(yōu)化刪除了中間連接對象,內(nèi)存被2個字符串文本和1個StringBuilder占用。總體而言,字符串對象的數(shù)量從O(n²)下降到O(n)。

回到第一個示例,編譯器對代碼的優(yōu)化如下:

小心陷阱!Java中常犯的10個錯誤

編譯器只是優(yōu)化了內(nèi)部連接,但這會創(chuàng)建很多StringBuilder和String對象!連接字符串的正確方法如下,只需一個StringBuilder和一個String。

小心陷阱!Java中常犯的10個錯誤

3. 沒有使用equals()

如果你正在使用==(比較運算符)而不是調(diào)用equals()函數(shù),那么你需要改變這個習(xí)慣,結(jié)果可能會令人大吃一驚。

小心陷阱!Java中常犯的10個錯誤

解釋:

當(dāng)想要比較兩個String以及其他任何對象時,不要使用==。==只比較兩個操作數(shù)的對象引用(內(nèi)存地址比較)而非內(nèi)容。

在上面的例子中,字符串不能啟動字符串駐留機制:它的內(nèi)存地址與x不同。

4. 返回null

筆者已經(jīng)發(fā)現(xiàn)了很多次這樣的方法:

小心陷阱!Java中常犯的10個錯誤

返回null的問題是強行讓調(diào)用方對結(jié)果進(jìn)行空檢查;在這種情況下,如果沒有項,調(diào)用方就會返回空列表。

開發(fā)人員總是希望返回一個異常或特殊對象(如空列表),否則使用代碼的應(yīng)用程序?qū)⑹艿絅ullPointerException的影響。

5. 密碼為字符串

將用戶提供的密碼存儲在字符串對象中是一個安全問題,字符串容易受到內(nèi)存攻擊。

應(yīng)該使用char[],就如同JPasswordField和Password4j正在做的那樣。但如果討論的是Web應(yīng)用程序,大多數(shù)Web容器都將HttpServletRequest對象中的純文本密碼作為String傳遞,所以開發(fā)人員幾乎對此無能為力。

 

小心陷阱!Java中常犯的10個錯誤

 

 

圖源:unsplash

 

解釋:

字符串由Java虛擬機(JVM)(駐留)緩存并存儲在PermGen空間(Java8之前)或堆空間中。在這兩種情況下,只有在垃圾回收發(fā)生后才刪除緩存值:這意味著無法得知特定值何時會從字符串池中刪除,因為垃圾收集器的行為是不確定的。

另一個問題是,String是不可變的,因此不能清除它們。然而char[]是可變的,并且可以在處理后刪除(例如用0替換每個元素)。通過這個簡單的技巧,攻擊者只能在內(nèi)存中找到全為零的數(shù)組而不是純文本密碼。

6. 傳遞null

傳遞null意味著,理所當(dāng)然地認(rèn)為調(diào)用的代碼可以管理null。如果不能,那么應(yīng)用程序肯定會拋出NullPointerException。

另外,顯式傳遞null會使代碼越來越混亂。下面是一個典型實例:

小心陷阱!Java中常犯的10個錯誤

調(diào)用init()時,沒有可用的User對象。那么,如果一個User都沒有,為什么要調(diào)用一個對User進(jìn)行操作的函數(shù)呢?如果需要grantAccessToUser()中的邏輯,就應(yīng)該從其他的函數(shù)中提取并使用,而非傳遞null。

7. Heavy methods

以下示例可能會導(dǎo)致系統(tǒng)性能損失:

小心陷阱!Java中常犯的10個錯誤

Pattern.compile()是一個資源占用極高的函數(shù),不應(yīng)在每次檢查字符串是否與同一模式匹配時都調(diào)用它。

解釋:

Pattern.compile() 將模式預(yù)編譯,以便使用更快的內(nèi)存表示。與單個匹配相比,此操作需要極強的計算能力。

增加性能的經(jīng)典方法是在靜態(tài)字段中緩存Pattern對象,如下所示:

小心陷阱!Java中常犯的10個錯誤

每次使用同一個資源占用極高的無狀態(tài)對象時,都應(yīng)該使用這個解決方案。

8. 迭代時處理集合

小心陷阱!Java中常犯的10個錯誤

這段代碼將拋出ConcurrentModificationException。

解釋:

在迭代時從列表中刪除某個項目,列表迭代器會運行不良,例如跳過元素、重復(fù)元素、索引數(shù)組末尾等。這就是許多集合更容易拋出oncurrentModificationException的原因。

使用底層數(shù)組迭代器:

小心陷阱!Java中常犯的10個錯誤

9. 使用“返回碼”而不是拋出異常

在某種意義上,開發(fā)人員認(rèn)為異常是不祥的,因此他們傾向于編寫返回奇怪值的函數(shù),如-1或“C_ERR”。

小心陷阱!Java中常犯的10個錯誤

這是一個值得創(chuàng)建自定義Exception的典型情況。該示例可以改寫如下:

小心陷阱!Java中常犯的10個錯誤

正如所見,代碼的可讀性和可維護(hù)性大大提高。調(diào)用者只需讀取DeviceStartException的內(nèi)容,而不必處理每個返回碼。

10. 使用StringBuffer

小心陷阱!Java中常犯的10個錯誤

由于StringBuffer的同步特性,此示例會產(chǎn)生大量內(nèi)存占用。在更復(fù)雜的環(huán)境中,讀取器可能會錯認(rèn)為某些不必要的同步是必要的。

如果項目中包含StringBuffer,可能是因為某些遺留API(即Java5之前)需要它,而很少是因為代碼試圖在并發(fā)環(huán)境中追加String。改用StringBuilder:在Java5時引入,其所有操作是不同步的。

這只是筆者在面試和活動項目中看到的部分錯誤,還沒有提到面向?qū)ο缶幊?OOP)的陷阱、設(shè)計模式、過度設(shè)計、內(nèi)存泄漏等缺陷……

 

小心陷阱!Java中常犯的10個錯誤

 

 

圖源:xkcd

 

如果你有這些問題,那么是時候改變編碼風(fēng)格。這并不難,避免這些陷阱能增強開發(fā)人員的經(jīng)驗,并且使人主動為下一次面試做更多的準(zhǔn)備。

多使用像SonarQube這樣的靜態(tài)代碼分析器,它能指出實際錯誤,突顯潛在錯誤。

 

[[322885]]

 

 

圖源:unsplash

 

更重要的是保持學(xué)習(xí),不僅是語法,還包括任何編程語言背后的理論。多敲代碼多練習(xí),讓小錯誤遠(yuǎn)離你~

 

責(zé)任編輯:趙寧寧 來源: 讀芯術(shù)
相關(guān)推薦

2009-09-14 19:23:45

敏捷開發(fā)

2021-06-04 10:15:17

JavaSQL編程語言

2019-07-08 13:58:03

Java數(shù)據(jù)結(jié)構(gòu)設(shè)計

2021-07-26 10:07:16

勒索軟件惡意軟件安全

2014-05-13 13:09:23

Python程序員

2015-04-21 12:54:21

2014-10-09 09:29:25

AngularJS

2015-09-21 09:34:57

2011-03-17 15:25:31

2015-08-27 16:15:10

程序員面試錯誤

2015-12-17 11:48:07

數(shù)據(jù)中心運營錯誤

2024-04-29 14:39:20

2022-05-16 08:43:33

CIOIT咨詢

2021-11-22 14:57:35

數(shù)據(jù)治理CIO數(shù)字化轉(zhuǎn)型

2013-12-27 09:03:47

開發(fā)項目

2019-06-21 10:13:26

JavaScript錯誤開發(fā)

2020-05-08 11:44:42

CISO安全風(fēng)險管理網(wǎng)絡(luò)安全

2014-05-04 16:39:49

開源項目開源產(chǎn)品

2011-07-22 15:12:12

java

2012-02-20 16:45:40

Android開發(fā)新手
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲免费在线电影| 狠狠综合久久| 欧美亚洲综合一区| 色一情一乱一伦一区二区三区丨| 五月天婷婷导航| 欧美禁忌电影| 一本大道av伊人久久综合| 欧美一区二区综合| 欧美一级黄视频| 一区二区三区四区在线观看国产日韩| 色av一区二区| 亚洲欧美日韩精品综合在线观看| 一区二区三区免费在线| 日韩dvd碟片| 88在线观看91蜜桃国自产| 免费国产成人看片在线| 国产91免费在线观看| 性色一区二区三区| 中文字幕在线观看亚洲| 欧美又黄又嫩大片a级| 两个人看的在线视频www| 久久一留热品黄| 成人在线中文字幕| 亚洲国产综合久久| 日本大胆欧美| 亚洲爱爱爱爱爱| 无码少妇一区二区三区芒果| 国产午夜精品一区理论片| 极品美女销魂一区二区三区| 久久琪琪电影院| 免费看污片网站| 不卡的国产精品| 一区二区三区中文在线观看| 欧美一区二区三区四区夜夜大片| 精品国产伦一区二区三区| 午夜一区不卡| 麻豆乱码国产一区二区三区 | 日韩精品欧美一区二区三区| 国产熟女一区二区三区五月婷| 韩日视频一区| 伊人久久精品视频| 精品一区二区视频在线观看| 性欧美video另类hd尤物| 亚洲成av人在线观看| 亚洲国产精品www| 四虎免费在线观看| 国内精品视频666| 欧洲永久精品大片ww免费漫画| 青青草免费av| 成人免费a**址| 亚洲精品成人av| 蜜桃色一区二区三区| 免费看男女www网站入口在线| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 朝桐光av在线一区二区三区| 蜜桃视频第一区免费观看| 97视频免费在线观看| 中文字幕在线观看2018| 国产亚洲电影| 亚洲色图15p| 成年人小视频在线观看| 日本精品视频| 欧美一区二区三区的| 五月婷婷之综合激情| 欧洲av不卡| 欧美日韩一区二区三区| 精品成在人线av无码免费看| 亚洲制服国产| 亚洲欧美日韩电影| 国产精品一区在线免费观看| 激情在线视频| 久久久久久免费| 精品在线视频一区二区三区| 全国男人的天堂网| 丁香桃色午夜亚洲一区二区三区| 91丝袜脚交足在线播放| 国产乱色精品成人免费视频| 精品一区二区免费看| 国产成人精品电影久久久| 天天操天天摸天天干| 夜夜嗨网站十八久久| 国产最新精品视频| www.国产成人| 国产日韩1区| 欧美黄色www| 日韩特黄一级片| 夜久久久久久| 国产成人久久久精品一区| 一级片免费在线播放| 久久影院亚洲| 国产精品久久久久秋霞鲁丝 | 国产精品视频自在线| 中国女人一级一次看片| 九色综合狠狠综合久久| 91青草视频久久| 国内精品久久久久久久久久| 成人小视频在线观看| 精品在线不卡| 国产三区四区在线观看| 国产精品午夜电影| 宅男av一区二区三区| 影音先锋在线视频| 亚洲成人免费视| 欧美黄色免费影院| 蜜桃视频在线观看免费视频| 在线视频你懂得一区| 在线观看免费不卡av| 亚洲成人影音| 日韩国产欧美精品在线| 欧美激情 一区| 亚洲破处大片| 欧美综合在线第二页| 91久久偷偷做嫩草影院| 精品国产乱码久久久久久图片| 久久久综合九色合综国产精品| 欧美日韩18| www久久日com| 偷拍亚洲色图| 亚洲欧美精品一区| 国产调教在线观看| 欧美先锋影音| 国产成人精品久久二区二区91| 亚洲一区在线观| 成人av电影在线网| 一区二区三区四区视频在线| 2018av在线| 欧美日韩亚洲综合在线| 人妻无码中文久久久久专区| 久久亚洲影视| 国产91成人video| 国产免费黄色大片| 国产性天天综合网| 六月婷婷激情网| 亚洲va中文在线播放免费| 欧美午夜一区二区| 女同性恋一区二区三区| 日韩综合精品| 4p变态网欧美系列| 国产www免费观看| 日本一区二区在线不卡| av免费看网址| 精品视频91| 在线看欧美日韩| av黄色在线看| 波多野结衣亚洲一区| 精品一区二区成人免费视频| 国产麻豆久久| 日韩黄色高清视频| 久久久久久蜜桃| 国内精品在线播放| 亚洲图色在线| 四虎4545www国产精品| 亚洲精品成人av| 九九热精品在线观看| 精品一区二区综合| 日韩av电影在线观看| 午夜av不卡| 亚洲精品wwwww| 日本青青草视频| 狠狠久久亚洲欧美| 亚洲人成77777| 最新日韩一区| 亚洲成**性毛茸茸| 国产精彩视频在线| 国产一区二区电影| 亚洲欧洲一区二区福利| 国产激情欧美| 中文字幕久久精品| 免费黄色片视频| 久久精品视频一区二区三区| 欧美 国产 日本| 成人在线视频观看| 国产一区二区激情| 91禁在线观看| 亚洲一区二区三区激情| 久久久久亚洲AV成人无码国产| 性欧美videos另类喷潮| 亚洲精品tv久久久久久久久| 日本在线成人| 欧美又大又粗又长| eeuss影院www在线观看| 日韩欧美中文字幕一区| 一级片中文字幕| 国产精品天干天干在线综合| 亚洲av无码成人精品区| 噜噜噜躁狠狠躁狠狠精品视频| 日韩视频精品| 亚洲午夜精品| 国产成人a亚洲精品| 成人免费高清| 亚洲欧洲在线视频| 国产视频www| 色综合一区二区| 波多野结衣不卡视频| 久久综合狠狠综合久久综合88 | 国产精品酒店视频| 国产精品18久久久久久久网站| 久草精品在线播放| 亚洲一区二区| 日韩不卡av| 粉嫩一区二区三区四区公司1| 国产精品久久久久久久天堂| 爱啪视频在线观看视频免费| 色多多国产成人永久免费网站| 黄色三级网站在线观看| 欧美日韩在线免费视频| 精品午夜福利视频| 国产精品久久久久7777按摩| 亚洲一区二区三区综合| 国模娜娜一区二区三区| 国产熟女高潮视频| 韩日精品在线| 中文字幕色一区二区| 日本午夜精品| 成人蜜桃视频| 国产视频一区二区在线播放| 国产精品黄色av| 亚洲精品福利电影| 久久频这里精品99香蕉| av在线app| www.日韩av.com| 91精品专区| 国产视频精品一区二区三区| 欧美一级在线免费观看| 日韩小视频在线观看专区| 中文字幕第99页| 91久久人澡人人添人人爽欧美| 日韩欧美亚洲国产| 一级女性全黄久久生活片免费| 亚洲精品国产精品乱码在线观看| 久久久www免费人成精品| 久久久久9999| 成人97人人超碰人人99| 在线观看亚洲免费视频| 国产精品亚洲综合一区在线观看| 亚洲视频一二三四| 蜜臀久久久99精品久久久久久| 日日碰狠狠躁久久躁婷婷| 国产欧美午夜| 免费在线激情视频| 西西裸体人体做爰大胆久久久| 精品国产av无码一区二区三区| 一本一道久久综合狠狠老| 尤物国产精品| 国产精品99在线观看| 一区二区欧美日韩| 国产精品久久久乱弄| 亚洲综合av一区| 国产大片一区| 日本三日本三级少妇三级66| 天天综合一区| 国内自拍中文字幕| 欧美日韩免费| 黄色一级视频在线播放| 亚洲影音一区| 欧美精品无码一区二区三区| 日本va欧美va瓶| 日韩va在线观看| 国产精品91一区二区| 国产伦理在线观看| 暴力调教一区二区三区| 全黄一级裸体片| 国产亚洲欧洲一区高清在线观看| 欧美极品jizzhd欧美18| 亚洲欧洲色图综合| 久久久精品99| 欧美日韩精品国产| 精品乱码一区内射人妻无码| 7777精品久久久大香线蕉| 午夜久久久久久久久久| 亚洲国产高清自拍| 成人在线观看黄色| 久久精品夜夜夜夜夜久久| 日本欧美电影在线观看| 97色伦亚洲国产| 精品女同一区二区三区在线观看| 亚洲自拍偷拍视频| 秋霞综合在线视频| 一区二区不卡视频| 国产精品magnet| 久久久久久久久久久久久国产精品| 蜜桃在线一区二区三区| 麻豆传媒在线看| 久久九九国产精品| 成人涩涩小片视频日本| 精品高清美女精品国产区| 中文字幕视频在线播放| 日韩亚洲欧美高清| 黄色av免费在线看| 欧美成人久久久| 天堂资源在线| 91手机在线播放| 精品福利久久久| 国内自拍中文字幕| 三级一区在线视频先锋| 亚洲精品乱码久久久久久9色| 久久综合久久99| 欧美交换国产一区内射| 色老头久久综合| 欧美一级特黄aaaaaa大片在线观看| 中国日韩欧美久久久久久久久| 不卡专区在线| 成人在线中文字幕| 欧美男男gaytwinkfreevideos| 欧美日韩视频免费| 蜜臀久久99精品久久久久久9| 亚洲制服丝袜在线播放| 亚洲图片激情小说| 久久久久久久亚洲| 亚洲美女自拍视频| 久久久久黄久久免费漫画| 国产日韩精品在线观看| 综合伊思人在钱三区| 黄色激情在线视频| 精品在线观看视频| 中文字幕有码在线播放| 五月天激情小说综合| 亚洲精品喷潮一区二区三区| 精品国产一区二区三区在线观看 | 老司机一区二区三区| 18禁一区二区三区| 亚洲欧美在线高清| 久久久久久av无码免费看大片| 亚洲欧美国产精品久久久久久久| 午夜羞羞小视频在线观看| 成人精品一区二区三区| 成人看的视频| 免费看a级黄色片| 久久精品一二三| 男人天堂2024| 日韩精品福利网站| www视频在线观看| 国产精品免费在线播放| 国内精品嫩模av私拍在线观看| 亚洲免费成人在线视频| 亚洲欧美中日韩| 一区二区三区播放| 久久精品国产一区二区三区| 78精品国产综合久久香蕉| 日本一区视频在线观看免费| 国产麻豆综合| 国产精品久久久久无码av色戒| 激情久久av一区av二区av三区 | 国产一区二区黑人欧美xxxx| 国产综合色区在线观看| 欧美日韩一区二区三| 爽爽淫人综合网网站| xxxx日本黄色| 欧美私模裸体表演在线观看| 欧美黄色激情| 亚洲a级在线观看| 欧美精品日韩| 欧美在线一级片| 一本高清dvd不卡在线观看| 国产一二三在线观看| 国产精品露脸自拍| 91日韩免费| 丰满少妇一区二区三区专区| 亚洲444eee在线观看| 婷婷色在线观看| 热久久视久久精品18亚洲精品| 免费国产自久久久久三四区久久| 激情婷婷综合网| 中文字幕一区二区视频| av观看在线免费| 国外成人性视频| 国产精品免费不| 在线观看免费污视频| 亚洲色图视频网| 天堂中文在线官网| 国产精品美女久久| 希岛爱理一区二区三区| 国产亚洲精品成人a| 欧美性猛交xxxx富婆弯腰| 91在线品视觉盛宴免费| 4444kk亚洲人成电影在线| 国产精品综合色区在线观看| 成年人视频软件| 日韩视频永久免费| 美女18一级毛片一品久道久久综合| 亚洲精品在线视频观看| 国产成人亚洲精品狼色在线| 久久免费激情视频| 久久精品人人做人人爽| 日日天天久久| 最新av免费在线观看| 午夜久久电影网| 免费高清完整在线观看| 国产综合18久久久久久| 看片网站欧美日韩| 天天操天天干视频| 久久精品99国产精品酒店日本| 啪啪激情综合网| 欧美视频亚洲图片| 日本韩国欧美在线| 好久没做在线观看| 水蜜桃亚洲一二三四在线| 99国产一区二区三精品乱码| 91中文字幕在线播放| 日本最新高清不卡中文字幕|