java效能優化

2021-08-07 03:39:21 字數 1070 閱讀 8468

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 前者在編譯時直接引入,後者在執行時刻才將所包含的檔案引入 前者適合引入靜態,變動不頻繁的頁面 後者適合引入動態,變動頻繁的頁面 除非檔案經常變動,否則使用前者將獲得...