1 简介
2 String,StringBuffer,StringBulider
java传递的是第一层传递
对于基础类型 :直接是值
对于引用类型 :传递的是对象的地址
String 每次操作都是new一个新对象!所以对其操作,旧对象的指向的值是不会变得
StringBuffer则不同,对其操作即直接操作对象指向的引用,无需产生新对象!
StringBuilder是jdk5之后新增的,其用法与StringBuffer完全一致,但它是线程不安全的,在单线程中最佳
线程安全性
String 字符串常量(线程安全) 对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
效率性:StringBuilder > StringBuffer > String
public static void main(String[] args) { String str1 = "hello world"; String str2 = new String("hello world"); String str3 = "hello world"; String str4 = new String("hello world"); System.out.println(str1==str2); System.out.println(str1==str3); System.out.println(str2==str4); } |