1. 減少gc的壓力, gc 執行緒是乙個優先順序比較低的執行緒, 他是乙個守護執行緒(服務於主線程), **我們的堆記憶體
2. 盡量避免我們的new操作
總結
避免物件建立和gc
物件使用完成後進行置空
string
string a = new string("a");
string a1 = "a";
string a2 = "a" + "b" + "c";
方法區, 永久代--也是堆記憶體的一部分,存放類資訊,方法、常量,靜態變數等
常量池:在方法區,所有型別常量的乙個集合,string pool,int pool
stringbuffer
執行緒安全的可變字串行。
stringbuilder
jdk5.0後新引入的不是執行緒安全的 效率高
使用它們時是會額外在堆上為每個迴圈子建立乙個物件
用例子做乙個for迴圈和foreach,while,iterator迴圈的時間消耗
遍歷arraylist和vector 使用普通for速度最快 增強for最慢
遍歷linkedlist 使用iterator速度最快普通for最慢
遍歷hashset, linkedhashset和treeset
使用iterator速度快 增強for慢
integer i = 817598;
int i = 817598;
(優先)
integer i = ;
int i = ;
(優先)
有final: 沒有虛函式表,直接呼叫,最快
無final: 普通虛函式,那麼正常速度,中間
有final子類:因為沒有虛函式表,需要轉換成父類,較慢
無final子類: 因為虛函式,從虛函式表找父類的getname,最慢
JAVA效能優化
1.string 比stringbuffer 更佔記憶體空間,拼接字串時 原因 string 這個物件的實際占用記憶體數量與其自身的位元組數不相符。結論 應該少用string 這東西,特別是string 的 操作,不僅原來的string 物件 不能繼續使用,而且又要產生多個新物件,因此會較高的占用記...
JAVA效能優化
多使用區域性變數,減少使用靜態變數。區域性變數被建立在棧中,訪問速度快。靜態變數則是在堆記憶體 避免使用finalize,該方法會給gc增添很大的負擔 如果是單執行緒,盡量使用非多執行緒安全的,因為執行緒安全來自於同步機制,同步機制會降低效能。例如,單執行緒程式,能使用hashmap,就不要用has...
java效能優化 jsp篇
幾點jsp優化建議 1.選擇正確的include機制 在jsp頁面中,有兩種包含機制 page include file xx.jsp 前者在編譯時直接引入,後者在執行時刻才將所包含的檔案引入 前者適合引入靜態,變動不頻繁的頁面 後者適合引入動態,變動頻繁的頁面 除非檔案經常變動,否則使用前者將獲得...