String类一旦创建,值无法改变,若想对String进行操作可定义StringBuilder/StringBuffer类
————————————————————————————————————————————————————————
*String类无法改变的原因分析*
String s="Hello";
System.out.prinln(s);
s="Java";
System.out.println(s);
输出结果:Hello
Java
从结果上看是改变了,但为什么门说String对象是不可变的呢?
原因在于实例中的 s 只是一个 String 对象的引用,并不是对象本身,当执行 s = "Java"; 创建了一个新的对象 "Java",而原来的 "Hello" 还存在于内存中。
执行s="Hello"————————————|Hello|
|Hello|
执行s=“Java”——————————————|Java|
从图可以看出原来的"Hello"所在的内存并未被重写,"Java"没有将它覆盖
————————————————————————————————————————————————————————
String类有length()方法直接获取String长度
连接字符串:String1.concat(String2)
创建格式化字符串:printf(),format()
printf()返回值为PrintStream对象
format()返回值为String对象