如何避免內(nèi)存泄漏

1 盡早釋放無用的對象入蛆。
在變量退出活動區(qū)域后自動設(shè)置為null(雖然這樣在JAVA里面基本是沒用的,詳見:
https://blog.csdn.net/qq_42945742/article/details/84107531](https://blog.csdn.net/qq_42945742/article/details/84107531
但是這是一種良好的習(xí)慣硕勿,建議變量退出活動區(qū)域后自動設(shè)置為null

2 函數(shù)遞歸是一定要注意函數(shù)遞歸調(diào)用的深度哨毁。深度過大很有可能會導(dǎo)致棧幀溢出

3 程序進行字符串處理時,避免使用String 而要盡量使用StringBuffer
如:String str=“a” String str2="b" String str3="c" 這樣內(nèi)存中一定存在三個對象源武,并且如果str str2不再被調(diào)用扼褪,那么他們就
會成為內(nèi)存的垃圾,等待回收

4 盡量少使用靜態(tài)變量:方法區(qū)中的靜態(tài)變量是gc root掃描的類型之一粱栖,也就是說靜態(tài)變量永遠(yuǎn)不會jvm回收话浇。

5 盡量減少不可預(yù)測的內(nèi)存對象。如在文件上傳時候 經(jīng)常會出現(xiàn)java.outofMemoryError的錯誤闹究,
看代碼:m_totalBytes = m_request.getContentLength();
m_binArray = new byte[m_totalBytes];
這里對新建對象的大小沒有限制幔崖,如果并發(fā)較高,而文件又比較大,短時間會導(dǎo)致內(nèi)存急劇增大而出現(xiàn)oom錯誤岖瑰。
解決方案很多叛买,我們可以每次限制申請的內(nèi)存的大小為1M。http://bbs.xml.org.cn/blog/more.asp?name=hongrui&id=3747

6 盡量使用內(nèi)存池技術(shù)提高系統(tǒng)的性能蹋订。
聲明周期長的對象擁有生命周期短的對象時容易引發(fā)內(nèi)存泄漏率挣,例如:大集合對象擁有大數(shù)據(jù)量的業(yè)務(wù)對象的時候,可以考慮分塊處理露戒,然后一塊一塊釋放的策略椒功。

7 不要在經(jīng)常調(diào)用的方法中創(chuàng)建對象,特別忌諱在循環(huán)中創(chuàng)建對象智什。
建議可以使用java內(nèi)嵌的一些數(shù)據(jù)結(jié)構(gòu)动漾,hashtable vector中存放一些對象,然后使用時再去容器里面去取荠锭,不用每次new后載
丟棄

8 把配置增大 a.設(shè)置-Xms旱眯、-Xmx相等;
b.設(shè)置NewSize证九、MaxNewSize相等删豺;
c.設(shè)置Heap size, PermGen space:

9:減少避免內(nèi)存泄漏主要思想是:1 千萬不要出現(xiàn)對象廢棄了但是依然存在引用導(dǎo)致不能釋放的情況
2 不要申請不可預(yù)期的內(nèi)存如 new byte[x] x不可預(yù)測
3 避免循環(huán)中出現(xiàn)申請內(nèi)存的操作
4 盡量復(fù)用對象 減少運行期間產(chǎn)生垃圾的情況,降低gc頻率的同時也減少內(nèi)存泄漏的可能性愧怜。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末呀页,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拥坛,更是在濱河造成了極大的恐慌蓬蝶,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猜惋,死亡現(xiàn)場離奇詭異丸氛,居然都是意外死亡,警方通過查閱死者的電腦和手機著摔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門雪位,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人梨撞,你說我怎么就攤上這事雹洗。” “怎么了卧波?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵矾利,是天一觀的道長咨察。 經(jīng)常有香客問我棺牧,道長呕臂,這世上最難降的妖魔是什么旦签? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮寸宏,結(jié)果婚禮上宁炫,老公的妹妹穿的比我還像新娘。我一直安慰自己氮凝,他們只是感情好羔巢,可當(dāng)我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著罩阵,像睡著了一般竿秆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上稿壁,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天幽钢,我揣著相機與錄音,去河邊找鬼傅是。 笑死匪燕,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的喧笔。 我是一名探鬼主播帽驯,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼溃斋!你這毒婦竟也來了界拦?” 一聲冷哼從身側(cè)響起吸申,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤梗劫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后截碴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梳侨,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年日丹,在試婚紗的時候發(fā)現(xiàn)自己被綠了走哺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡哲虾,死狀恐怖丙躏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情束凑,我是刑警寧澤晒旅,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站汪诉,受9級特大地震影響废恋,放射性物質(zhì)發(fā)生泄漏谈秫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一鱼鼓、第九天 我趴在偏房一處隱蔽的房頂上張望拟烫。 院中可真熱鬧,春花似錦迄本、人聲如沸硕淑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喜颁。三九已至,卻和暖如春曹阔,著一層夾襖步出監(jiān)牢的瞬間半开,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工赃份, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留寂拆,地道東北人。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓抓韩,卻偏偏與公主長得像纠永,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谒拴,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內(nèi)容