String对象特点
- String对象是Java中重要的数据类型
- String对象的特点:
不变性
- String对象的状态在创建之后就不再发生变化
- 当一个String对象被多线程共享,而且被频繁访问时.可以省略同步和锁的时间,从而提高性能
常量池优化
- 常量池优化: 当两个String对象拥有同一个常量值的时候,都是引用了常量池中同一个拷贝
- 这样,当程序中某个字符串频繁出现时,常量池优化技术可以大大节省内存空间
String s1 = "constant";
String s2 = "constant";
String s3 = new String("constant");
s1 == s2;
s1 == s3;
s1 == s3.intern();
final定义
- String类以final进行修饰
- String类不可能出现子类
String优化
优化split方法
- 使用indexOf() 和subString() 方法进行自定义拆分,会显著提高性能
优化String拼接
- 在循环中,使用 + 进行字符串拼接的效率明显偏低
- 在循环中,拼接字符串建议使用StringBuffer和StringBuilder的append() 方法进行拼接
- 通常建议使用StringBuffer的append() 方法.
- 尽管比StringBuilder的效率略低,但是实现了线程安全
- 在无需考虑线程安全的情况下,可以使用StringBuilder的append() 方法
优化基本类型转化String
- 基本类型转化为String类型有3种方法:
- toString() : 效率最高
- String.valueOf() : 调用底层的toString() 方法,效率次之
- +"" : 由StringBuilder实现,先调用了append() 方法,然后调用toString() 方法获取字符串.效率最低
- 基本类型转化String时建议使用toString() 方法