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