1、字符串優(yōu)化處理
在Java中,對(duì)字符串做了大量的優(yōu)化處理
- 1、不變性
當(dāng)一個(gè)對(duì)象被多個(gè)線程共享,不變性可以省略同步和鎖等待的時(shí)間
- 2、針對(duì)常量池的優(yōu)化
當(dāng)兩個(gè)string對(duì)象擁有相同的值時(shí),他們引用常量池中的同一個(gè)拷貝
package XingNeng;
/**
* Created by haicheng.lhc on 21/05/2017.
*
* @author haicheng.lhc
* @date 2017/05/21
*/
public class StringTest {
public static void main(String[] args) {
String str1 = "abc";
String str2 = "abc";
String str3 = new String("abc");
System.out.println(str1 == str2);
System.out.println(str1 == str3);
System.out.println(str1 == str2.intern());
}
}
輸出結(jié)果為:
- 3、類的final定義
提供系統(tǒng)的效率
核心數(shù)據(jù)結(jié)構(gòu)
List
數(shù)據(jù)結(jié)構(gòu)名 | 實(shí)現(xiàn) | 插入 | 刪除 | 遍歷查找 | 是否線程安全 | 備注 |
---|---|---|---|---|---|---|
ArrayList | 數(shù)組 | 增加到尾端性能好,到任意位置性能差 | 性能差 | 性能好 | 不安全 | 當(dāng)需要擴(kuò)容的時(shí)候會(huì)影響性能 |
LinkedList | 雙向循環(huán)鏈表 | 增加到任意位置有優(yōu)勢 | 性能好 | 性能差 | 每次需要新建Entry |
Map
Set
使用NIO提升系統(tǒng)性能
引用類型
可以參考這篇文章:強(qiáng)引用、弱引用、軟引用、虛引用