1.1 String及其常用API
1.1.1 String是不可变对象
· java.lang.String使用了final修饰,不能被继承;
· 字符串底层封装了字符数组及针对字符数组的操作算法;
· 字符串一旦创建,对象永远无法改变,但字符串引用可以重新赋值;
· Java字符串在内存中采用Unicode编码方式,任何一个字符对应两个字节的定长编码。
1.1.2 String常量池
· Java为了提高性能,静态字符串(字面量/常量/常量连接的结果)在常量池中创建,并尽量使用同一个对象,重用静态字符串;
· 对于重复出现的字符串直接量,JVM会首先在常量池中查找,如果存在即返回该对象。
String常量池(续1)
/** 测试String常量池 */
@Test
public void testConstantPool(){
String str1="Hello";
//不会创建新的String