麻豆av一区二区三区久久,亚洲国产一区二区视频,亚洲欧洲国产精品久久,国产精品天天看天天狠

南京中博教育
南京中博教育學(xué)校南京中博教育 > 新聞中心 >

南京java培訓(xùn)--關(guān)于java代碼優(yōu)化的幾條建議

發(fā)布時(shí)間:2018-09-30 11:29??發(fā)布人:南京java培訓(xùn)??發(fā)布來(lái)源:未知??瀏覽人數(shù):51

前言:結(jié)合自己的工作和平時(shí)學(xué)習(xí)的體驗(yàn)重新談一下為什么要進(jìn)行代碼優(yōu)化。在修改之前,作者的說(shuō)法是這樣的: 就像鯨魚吃蝦米一樣,也許吃一個(gè)兩個(gè)蝦米對(duì)于鯨魚來(lái)說(shuō)作用不大,但是吃的
結(jié)合自己的工作和平時(shí)學(xué)習(xí)的體驗(yàn)重新談一下為什么要進(jìn)行代碼優(yōu)化。在修改之前,作者的說(shuō)法是這樣的:
 
就像鯨魚吃蝦米一樣,也許吃一個(gè)兩個(gè)蝦米對(duì)于鯨魚來(lái)說(shuō)作用不大,但是吃的蝦米多了,鯨魚自然飽了。
 
代碼優(yōu)化一樣,也許一個(gè)兩個(gè)的優(yōu)化,對(duì)于提升代碼的運(yùn)行效率意義不大,但是只要處處都能注意代碼優(yōu)化,總體來(lái)說(shuō)對(duì)于提升代碼的運(yùn)行效率就很有用了。
 
這個(gè)觀點(diǎn),在現(xiàn)在看來(lái),是要進(jìn)行代碼優(yōu)化的一個(gè)原因,但不全對(duì)。在機(jī)械工藝發(fā)展的今天,服務(wù)器動(dòng)輒8核、16核,64位CPU,代碼執(zhí)行效率非常高,StringBuilder替換StringBuffer、ArrayList替換Vector,對(duì)于代碼運(yùn)行效率的提升是微乎其微的,即使是項(xiàng)目中的每個(gè)點(diǎn)都注意到了,代碼運(yùn)行也看不出什么明顯的變化。
 
我認(rèn)為,代碼優(yōu)化的重要的作用應(yīng)該是:避免未知的錯(cuò)誤。在代碼上線運(yùn)行的過(guò)程中,往往會(huì)出現(xiàn)很多我們意想不到的錯(cuò)誤,因?yàn)榫€上環(huán)境和開發(fā)環(huán)境是非常不同的,錯(cuò)誤定位到后往往是一個(gè)非常小的原因。然而為了解決這個(gè)錯(cuò)誤,我們需要先自驗(yàn)證、再打包出待替換的class文件、暫停業(yè)務(wù)并重啟,對(duì)于一個(gè)成熟的項(xiàng)目而言,后一條其實(shí)影響是非常大的,這意味著這段時(shí)間用戶無(wú)法訪問(wèn)應(yīng)用。因此,在寫代碼的時(shí)候,從源頭開始注意各種細(xì)節(jié),權(quán)衡并使用優(yōu)的選擇,將會(huì)很大程度上避免出現(xiàn)未知的錯(cuò)誤,從長(zhǎng)遠(yuǎn)看也極大的降低了工作量。
 
一、java代碼優(yōu)化的目標(biāo)是:
 
1、減小代碼的體積
 
2、提高代碼運(yùn)行的效率
 
本文的內(nèi)容有些來(lái)自網(wǎng)絡(luò),有些來(lái)自平時(shí)工作和學(xué)習(xí),當(dāng)然這不重要,重要的是這些代碼優(yōu)化的細(xì)節(jié)是否真真正正地有用。那本文會(huì)保持長(zhǎng)期更新,只要有遇到值得分享的代碼優(yōu)化細(xì)節(jié),就會(huì)不定時(shí)地更新此文。
 
二、java代碼優(yōu)化細(xì)節(jié):
 
1、盡量指定類、方法的final修飾符
 
帶有final修飾符的類是不可派生的。在Java核心API中,有許多應(yīng)用final的例子,例如java.lang.String,整個(gè)類都是final的。為類指定final修飾符可以讓類不可以被繼承,為方法指定final修飾符可以讓方法不可以被重寫。如果指定了一個(gè)類為final,則該類所有的方法都是final的。Java編譯器會(huì)尋找機(jī)會(huì)內(nèi)聯(lián)所有的final方法,內(nèi)聯(lián)對(duì)于提升Java運(yùn)行效率作用重大,具體參見Java運(yùn)行期優(yōu)化。此舉能夠使性能平均提高50%。
 
2、盡量重用對(duì)象
 
特別是String對(duì)象的使用,出現(xiàn)字符串連接時(shí)應(yīng)該使用StringBuilder/StringBuffer代替。由于Java虛擬機(jī)不僅要花時(shí)間生成對(duì)象,以后可能還需要花時(shí)間對(duì)這些對(duì)象進(jìn)行垃圾回收和處理,因此,生成過(guò)多的對(duì)象將會(huì)給程序的性能帶來(lái)很大的影響。
 
3、盡可能使用局部變量
 
調(diào)用方法時(shí)傳遞的參數(shù)以及在調(diào)用中創(chuàng)建的臨時(shí)變量都保存在棧中,速度較快,其他變量,如靜態(tài)變量、實(shí)例變量等,都在堆中創(chuàng)建,速度較慢。另外,棧中創(chuàng)建的變量,隨著方法的運(yùn)行結(jié)束,這些內(nèi)容就沒(méi)了,不需要額外的垃圾回收。
 
4、及時(shí)關(guān)閉流
 
Java編程過(guò)程中,進(jìn)行數(shù)據(jù)庫(kù)連接、I/O流操作時(shí)務(wù)必小心,在使用完畢后,及時(shí)關(guān)閉以釋放資源。因?yàn)閷?duì)這些大對(duì)象的操作會(huì)造成系統(tǒng)大的開銷,稍有不慎,將會(huì)導(dǎo)致嚴(yán)重的后果。

南京北大青鳥,主要課程:南京ui-web前端-java培訓(xùn)。課程包括:南京web前端培訓(xùn)、南京java培訓(xùn)、南京ui培訓(xùn)、南京android培訓(xùn)、ios、微信營(yíng)銷等課程。

版權(quán)聲明:本文南京java培訓(xùn)--關(guān)于java代碼優(yōu)化的幾條建議: http://www.by727727.com/news/2.html 的內(nèi)容、圖片由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至2353260942@qq.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。互聯(lián)網(wǎng)教程 寵物知識(shí)(如需投稿聯(lián)系管理員開通!)

更多人關(guān)注:

編程一般要學(xué)幾年能當(dāng)程序員?   從零基礎(chǔ)到成為初級(jí)程序員,通常需要6個(gè)月至2年的時(shí)間,...
學(xué)習(xí)web前端的方法和步驟有哪些?   隨著現(xiàn)在互聯(lián)網(wǎng)的不斷發(fā)展很多人都會(huì)選擇轉(zhuǎn)行了,但是想...
軟件開發(fā)培訓(xùn)要學(xué)多久?   軟件開發(fā)培訓(xùn)要學(xué)4-6個(gè)月,培訓(xùn)期間可以系統(tǒng)地學(xué)習(xí)編程語(yǔ)...
java入門基礎(chǔ)知識(shí)   Java語(yǔ)言的設(shè)計(jì)宗旨是為了解決跨平臺(tái)的編程問(wèn)題。Java語(yǔ)言...

上一篇:沒(méi)有了

下一篇:南京ui培訓(xùn)--什么是ui界面?

搶實(shí)地試聽名額

名額僅剩66名

教育改變生活

WE CHANGE LIVES

? CopyRight nj-test.com ???? 蘇ICP備2023001897號(hào)-3

主站蜘蛛池模板: 郸城县| 新密市| 阿拉善盟| 林甸县| 田阳县| 九寨沟县| 仁化县| 寻乌县| 柳林县| 宁城县| 稻城县| 许昌市| 辛集市| 重庆市| 叙永县| 承德县| 瑞丽市| 赤壁市| 长阳| 伊金霍洛旗| 宣威市| 彰化县| 庆安县| 三明市| 亚东县| 玉屏| 江口县| 江油市| 旅游| 尚义县| 庆城县| 平潭县| 株洲市| 平阳县| 朝阳市| 珲春市| 泊头市| 兰州市| 莲花县| 苏尼特右旗| 都安|