String
- 字符串是常量,创建之后不可改变
- 字符串字面值存储在字符串池中,可以共享
- String s = “Hello”; 产生一个对象,字符串池中存储
- String s = new String(“Hello”); //产生两个对象,堆、池中各存储一个
- String类常用方法集合代码实例:点击String类方法集合
可变字符串
- StringBuffer:可变长字符串,JDK1.0提供,运行效率慢,线程安全
- StringBuilder:可变长字符串,JDK5.0提供,运行效率快,线程不安全
- 注意:jdk中Stringbuffer和Stringbuilder的所有功能都是一样的,但是当然还是有一些差异化,同样也是一把双刃剑,不同的场景选择不同的可变字符串类型
jdk中StringBuilder调优以及intern();方法应用(main函数中)
注意:默认放在类(class)中的字符串是放在池中的,是不可以改变的(作为常量放在池中,不可以改变)
再次注意:需要拼接的时候jdk自动对字符串进行扩容调优,不管你拼接多少个字符串,最后只是一个字符串在不停的扩容、拼接,实际上只有一个地址(不会产生任何中间变量)
/**
* @author Ziph
* @date 2020年3月3日
* @Email mylifes1110@163.com
*
* intern();
* 手动在程序运行中,将字符串放在池中
* 要求:满足首次出现
*/
public class TestStringOptimize {
public static void main(String[] args