java內(nèi)存優(yōu)化的方法總結(jié)
1、不必要的自動裝箱。
自動裝箱是將基礎(chǔ)數(shù)據(jù)類型轉(zhuǎn)換為相應(yīng)的復(fù)雜類型,在HashMap的追加刪除調(diào)查中充滿了自動裝箱問題,因此盡量避免HashMap代替SparseArray和ArrrayMap等問題。
2、內(nèi)存復(fù)用。
資源復(fù)用:通用字符串、顏色、布局。
視圖復(fù)用:類似于RecyclerView的優(yōu)化再利用。
目標池:創(chuàng)建目標池,無需重復(fù)創(chuàng)建目標,類似于線程池,messae享受元模式。
Bitmap對象復(fù)用:使用inBitmap屬性,Bitmap解碼器可以通知Bitmap解碼器使用已經(jīng)存在的存儲區(qū)域,新解碼的bitmap可以嘗試使用以前bitmap在heap中占有的存儲區(qū)域。
3、App內(nèi)存過低時,可以自主釋放內(nèi)存。
在App退出后臺的內(nèi)存緊張被Kill丟失的情況下,選擇重寫Application中onTrimmemory/onLowMemory方法,釋放圖像緩存、靜態(tài)緩存。
4、優(yōu)化其他場景。
item在無法回收的情況下釋放了圖像的引用。
使用字符串連接時,請盡量使用StringBuilder、StringBuffer(內(nèi)存抖動)
定制view減少onDraw的時間和執(zhí)行次數(shù)。
盡量使用靜態(tài)內(nèi)部類。
盡量使用基礎(chǔ)數(shù)據(jù)類型。
適當(dāng)時使用軟/弱引用。
內(nèi)容擴展:
對程序員們來說,代碼優(yōu)化是一個很重要的課題??赡苡行┤擞X得沒用,一些細小的地方有什么好修改的,改與不改對于代碼的運行效率有什么影響呢?這個問題我是這么考慮的,就像大海里面的鯨魚一樣,它吃一條小蝦米有用嗎?沒用,但是,吃的小蝦米一多之后,鯨魚就被喂飽了。代碼優(yōu)化也是一樣,如果項目著眼于盡快無BUG上線,那么此時可以抓大放小,代碼的細節(jié)可以不精打細磨;但是如果有足夠的時間開發(fā)、維護代碼,這時候就必須考慮每個可以優(yōu)化的細節(jié)了,一個一個細小的優(yōu)化點累積起來,對于代碼的運行效率絕對是有提升的。
代碼優(yōu)化的目標是:
1、減小代碼的體積
2、提高代碼運行的效率
到此這篇關(guān)于java內(nèi)存優(yōu)化的方法總結(jié)的文章就介紹到這了,更多相關(guān)java內(nèi)存優(yōu)化的四種方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java class文件格式之屬性_動力節(jié)點Java學(xué)院整理
在本文中, 主要講解了class文件中的一些屬性。 這些屬性可以出現(xiàn)在class文件中的對個地方, 用來描述一些其他信息2017-06-06java實現(xiàn)圖像轉(zhuǎn)碼為字符畫的方法
這篇文章主要為大家詳細介紹了java實現(xiàn)圖像轉(zhuǎn)碼為字符畫的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03SpringBoot整合POI實現(xiàn)Excel文件讀寫操作
EasyExcel是一個基于Java的、快速、簡潔、解決大文件內(nèi)存溢出的Excel處理工具,這篇文章主要介紹了SpringBoot整合POI實現(xiàn)Excel文件讀寫操作,首先準備環(huán)境進行一系列操作,本文給大家介紹的非常詳細,需要的朋友參考下吧2023-10-10maven依賴包沖突SLF4J:?Class?path?contains?multiple?SLF4J?bi
這篇文章主要給大家介紹了關(guān)于maven依賴包沖突SLF4J:?Class?path?contains?multiple?SLF4J?bindings的處理方法,這個問題通常是因為項目中存在多個SLF4J的實現(xiàn)綁定(bindings)導(dǎo)致的沖突,需要的朋友可以參考下2024-02-02Java獲取XML節(jié)點總結(jié)之讀取XML文檔節(jié)點的方法
下面小編就為大家?guī)硪黄狫ava獲取XML節(jié)點總結(jié)之讀取XML文檔節(jié)點的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10MyBatisPlus的IService接口實現(xiàn)
MyBatisPlus是一個為MyBatis提供增強的工具,它通過IService接口簡化了數(shù)據(jù)庫的CRUD操作,IService接口封裝了一系列常用的數(shù)據(jù)操作方法,本文就來介紹一下,感興趣的可以了解一下2024-10-10java Collection 之List學(xué)習(xí)介紹
本篇文章小編為大家介紹,java Collection 之List學(xué)習(xí)介紹。需要的朋友參考下2013-04-04