Java中String类深度剖析
1.Java源码中String类的定义:
public final class String extends Object implements Serializable, Comparable<String>, CharSequence
2.String
类代表字符串。Java 程序中的所有字符串字面值(如 "abc"
)都作为此类的实例实现。
3.字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。例如: String str = "abc";
等效于: char data[] = {'a', 'b', 'c'}; String str = new String(data);
4.String
类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写。大小写映射基于 Character
类指定的 Unicode
标准版。
5.Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder
(或
StringBuffer
)类及其 append
方法实现的。字符串转换是通过
toString
方法实现的,该方法由 Object
类定义,并可被 Java 中的所有类继承。
6. String ss1 = "hello";
String ss2 = "world";
String ss3 = ss1 + ss2;
System.out.println(ss3);
由于字符串是常量,一旦创建后就不能再改变。ss3和ss1、ss2是三个不同的对象,ss3是新生成的一个对象,不是ss1和ss2拼接成的。因此当使用+拼接字符串时,会生成新的对象,而不是向原有的String对象增加内容。