JAVA優化程式設計 記憶體管理之 (4)陣列的建立

2021-06-02 10:33:31 字數 845 閱讀 7292

4  陣列的建立

陣列空間的申請分為顯式申請與隱式申請兩種。顯式申請是指在程式中直接給出陣列的型別與長度,例如:

int  intarray = newint[1024];

上面的這行**就是顯式地向系統一次性申請了大小為1kb的整數型別的記憶體空間,這樣的宣告方式一般出現在對檔案或網路的資源讀取的處理**中,往往用來作為資料讀取的緩衝區,以提高讀取效率。由於我們不知道具體讀取的內容的長度,因此,我們只能通過這種方式來讀取相關資源,這樣做顯然有些弊端,例如,檔案或網路資源的長度不可能是你所給定的陣列長度的整數倍,或者檔案、網路資源的長度小於你所申請的陣列的長度,這就造成了系統記憶體資源浪費。隱式申請是在宣告陣列物件時不知道將要得到的陣列的具體長度,例如:

int  intarray = obj.getintarray();

system.out.println("整型陣列長度:" + intarray.length());

在這行**中我們事先並不知道obj.getintarray()到底返回的陣列長度是多少,這是在程式執行時確定的,因此這裡不存在上面的顯式申請陣列浪費記憶體的問題,因為陣列的長度是由系統決定的,因此這種方法是提倡使用的。

... ...

object obj = new char[1000000];

softreference ref = new softreference(obj);

... ...

由於陣列物件長度較長,占用了較大的記憶體空間,因此我們對obj採用了軟引用的處理方式達到合理使用系統記憶體的目的。

JAVA優化程式設計 記憶體管理之 (4)陣列的建立

4 陣列的建立 陣列空間的申請分為顯式申請與隱式申請兩種。顯式申請是指在程式中直接給出陣列的型別與長度,例如 int intarray new int 1024 上面的這行 就是顯式地向系統一次性申請了大小為1kb的整數型別的記憶體空間,這樣的宣告方式一般出現在對檔案或網路的資源讀取的處理 中,往往...

php程式記憶體優化之陣列操作優化

一 前言out of memory allocated 364904448 tried to allocate 262144 bytes 也就是傳統的記憶體不足報錯,問題是我本地設定的記憶體已經是1280m了,簡直不能忍。因此這裡一步步的看一篇 記錄一下需要優化的地方,主要是針對陣列的 二 優化前準...

Java基礎學習之java基本語法(4) 陣列

本人是職場新手,想用記錄部落格的方式給自己的學習之路做點筆記,若有不對還望指正!預設初始化 陣列是引用資料型別,它的元素相當於類的成員變數,因此陣列一經分配空間,其中的每個元素也被按照成員變數同樣的方式被隱式初始化 例如 public class test 對於基本資料型別來說,預設初始化值各有不同...