java內(nèi)存優(yōu)化的方法總結(jié)
自動(dòng)裝箱是將基礎(chǔ)數(shù)據(jù)類(lèi)型轉(zhuǎn)換為相應(yīng)的復(fù)雜類(lèi)型,在HashMap的追加刪除調(diào)查中充滿(mǎn)了自動(dòng)裝箱問(wèn)題,因此盡量避免HashMap代替SparseArray和ArrrayMap等問(wèn)題。
2、內(nèi)存復(fù)用。資源復(fù)用:通用字符串、顏色、布局。
視圖復(fù)用:類(lèi)似于RecyclerView的優(yōu)化再利用。
目標(biāo)池:創(chuàng)建目標(biāo)池,無(wú)需重復(fù)創(chuàng)建目標(biāo),類(lèi)似于線(xiàn)程池,messae享受元模式。
Bitmap對(duì)象復(fù)用:使用inBitmap屬性,Bitmap解碼器可以通知Bitmap解碼器使用已經(jīng)存在的存儲(chǔ)區(qū)域,新解碼的bitmap可以嘗試使用以前bitmap在heap中占有的存儲(chǔ)區(qū)域。
3、App內(nèi)存過(guò)低時(shí),可以自主釋放內(nèi)存。在App退出后臺(tái)的內(nèi)存緊張被Kill丟失的情況下,選擇重寫(xiě)Application中onTrimmemory/onLowMemory方法,釋放圖像緩存、靜態(tài)緩存。
4、優(yōu)化其他場(chǎng)景。item在無(wú)法回收的情況下釋放了圖像的引用。
使用字符串連接時(shí),請(qǐng)盡量使用StringBuilder、StringBuffer(內(nèi)存抖動(dòng))
定制view減少onDraw的時(shí)間和執(zhí)行次數(shù)。
盡量使用靜態(tài)內(nèi)部類(lèi)。
盡量使用基礎(chǔ)數(shù)據(jù)類(lèi)型。
適當(dāng)時(shí)使用軟/弱引用。
內(nèi)容擴(kuò)展:
對(duì)程序員們來(lái)說(shuō),代碼優(yōu)化是一個(gè)很重要的課題??赡苡行┤擞X(jué)得沒(méi)用,一些細(xì)小的地方有什么好修改的,改與不改對(duì)于代碼的運(yùn)行效率有什么影響呢?這個(gè)問(wèn)題我是這么考慮的,就像大海里面的鯨魚(yú)一樣,它吃一條小蝦米有用嗎?沒(méi)用,但是,吃的小蝦米一多之后,鯨魚(yú)就被喂飽了。代碼優(yōu)化也是一樣,如果項(xiàng)目著眼于盡快無(wú)BUG上線(xiàn),那么此時(shí)可以抓大放小,代碼的細(xì)節(jié)可以不精打細(xì)磨;但是如果有足夠的時(shí)間開(kāi)發(fā)、維護(hù)代碼,這時(shí)候就必須考慮每個(gè)可以?xún)?yōu)化的細(xì)節(jié)了,一個(gè)一個(gè)細(xì)小的優(yōu)化點(diǎn)累積起來(lái),對(duì)于代碼的運(yùn)行效率絕對(duì)是有提升的。
代碼優(yōu)化的目標(biāo)是:
1、減小代碼的體積
2、提高代碼運(yùn)行的效率
到此這篇關(guān)于java內(nèi)存優(yōu)化的方法總結(jié)的文章就介紹到這了,更多相關(guān)java內(nèi)存優(yōu)化的四種方法內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. asp讀取xml文件和記數(shù)2. XML入門(mén)的常見(jiàn)問(wèn)題(一)3. 低版本IE正常運(yùn)行HTML5+CSS3網(wǎng)站的3種解決方案4. 阿里前端開(kāi)發(fā)中的規(guī)范要求5. html小技巧之td,div標(biāo)簽里內(nèi)容不換行6. webpack高級(jí)配置與優(yōu)化詳解7. IE6/IE7/IE8/IE9中tbody的innerHTML不能賦值的完美解決方案8. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理9. 讀寫(xiě)xml文件的2個(gè)小函數(shù)10. 告別AJAX實(shí)現(xiàn)無(wú)刷新提交表單
