String、StringBuffer、StringBuilder
- String
字符串"abc"、"123"等直接存储在方法区的字符串常量池中,且不可变,字符串常量池中也是存储的对象。
String str = "abc"先在字符串常量池中创建"abc"字符串,在栈中开辟str空间,指向常量池地址;
String str = new String(“abc”) 凡是双引号字符串都在常量池中存储,先在堆中开辟对象空间,存储指向常量池地址
- StringBuffer、StringBuilder
字符串拼接,用法都一样,但前者是线程安全,类中都有synchronized修饰,后者是不安全的。