String源码
惯例,膜拜Lee Boynton大神
先来看看官方注释对String的解释
* Strings are constant; their values cannot be changed after they
* are created. String buffers support mutable strings.
* Because String objects are immutable they can be shared.
String是常量,它们的值被创建后不能变化,String缓存区是可变的String,因为String类的不可变字符串对象是可以被共享的。
下面开始贴源码。
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence { ... }
没有继承其他的父类。
实现了Serializable接口,可以序列化。
实现了Comparable接口,主要是用来排序。
实现了CharSequence接口,这个就是一个字符序列,说明String就是字符数据组成的。
/** The value is used for character storage. */
private final char value[];
/** Cache the hash code for the string */
private int hash; // Default to 0
value是char的数组,可以知道String就是有char数组来存储的,看到没有,是final的,是不可变的。
hash变量,默认是0。
构造方法
1.无参的构造方法
public String() {
this.value = "".value;}
2.有参的构造方法(参数为String类)
public String(String original) {
this.value &#