字符串类型是java常用的数据类型,面试中也经常被问到的,想在面试中更好的回答面试官的问题,就要了解底层原理。
1.存储数据结构:字符数组
/** 用于存储字符串的值 */
private final char value[];
/** 缓存字符串的hash code值 */
private int hash; // Default to 0
2.主要构造方法:
-
public String() { this.value = "".value; }
-
public String(String original) { this.value = original.value; this.hash = original.hash; }
-
public String(char value[]) { this.value = Arrays.copyOf(value, value.length); }
-
public String(StringBuffer buffer) { synchronized(buffer) { this.value = Arrays.copyOf(buffer.getValue(), buffer.length()); } }
-
public String(StringBuilder builder)