1、字符串优化处理
在Java中,对字符串做了大量的优化处理
- 1、不变性
当一个对象被多个线程共享,不变性可以省略同步和锁等待的时间
- 2、针对常量池的优化
当两个string对象拥有相同的值时,他们引用常量池中的同一个拷贝
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());
}
}
输出结果为:
- 3、类的final定义
提供系统的效率
核心数据结构
List
数据结构名 | 实现 | 插入 | 删除 | 遍历查找 | 是否线程安全 | 备注 |
---|---|---|---|---|---|---|
ArrayList | 数组 | 增加到尾端性能好,到任意位置性能差 | 性能差 | 性能好 | 不安全 | 当需要扩容的时候会影响性能 |
LinkedList | 双向循环链表 | 增加到任意位置有优势 | 性能好 | 性能差 | 每次需要新建Entry |
Map
Set
使用NIO提升系统性能
引用类型
可以参考这篇文章:强引用、弱引用、软引用、虚引用