通州北大青鳥老師強調,Java優化在編程中的作用不容忽視,因為一個優化技術的好壞,直接影響了這段程序的運作。
內存會溢出肯定和代碼逃不了關系,同學們都知道垃圾回收器是 ava的一大優點。顯然這個特性為大家寫代碼省了不少事,但這個特性也帶來了不少隱患。舉個例子,在游戲當中經常有不同場景的切換,如從游戲邏輯退到主菜單邏輯,對游戲邏輯對象的態度很多人會選擇忘記等待垃圾回收器來收尸。乍看之下似乎并無不妥垃圾回收器會來善后。實際上垃圾回收器并非實時的,它不像C++的Delete語句馬上釋放不用的內存。當從游戲邏輯切換到主菜單邏輯這時兩個對象同時存在很可能這時內存就不夠用了。所以從一個角度上來講在j2me上所有垃圾必須由手工釋放。
j2me的內存溢出最嚴重的無疑非圖片莫屬,一張3k的圖片可以占用20多k的內存不信大家把load前后的內存剩余打印出來對比看看.所以防止內存溢出最直接的辦法就是從圖片入手。如何優化圖片?
多數人馬上會想到圖片壓縮這個辦法。的確,這個辦法是最有效的.在photoshop里圖片制作完成后不要選擇 “存儲為”,而是選擇 “存儲為 web 所用格式” 可以根據里面的選項進行壓縮,特別是顏色這一項越小越好不過相應的圖像會有所失真。那么完成這步就結束了嗎?其實不是。
實際上該圖片還可以再次壓縮,在網上有許多類似的工。在這里,通州北大青鳥老師推薦一款可以壓縮png格式的軟件xat.com Image Optimizer 。
假如你有多張規格一樣的圖片,那么建議你把它做成一張長條圖片。有兩個原因:
1、節省存儲空間和內存空間.
2、10張圖片需要10個image 對象需要進行10次io操作浪費時間不說還浪費內存.圖片太大了不要把不同界面的圖片整合在一起否則經常會得不償失。
另外,通州北大青鳥老師還要提醒大家,作圖時有一些細節需要注意,包括顏色數量,分辯率,圖像模式(最好是索引顏色)。畫布大小等等,都會影響到圖片大小。