常用类
字符串的不可变性(面试♥♥♥)
字面量的定义方式
1.当对字符串重新赋值时,需要重写指定内存区域赋值,不能使用原有的value进行赋值
2.当对现有的字符串进行连接操作时,也需要重新指定内存区域赋值,不能使用原有的value进行赋值
3.当调用String的replace()方法修改指定字符或者字符串时,也需要重新指定内存区域
- 通过字面量的方式给一个字符串赋值,此时的字符串值声明在字符串常量池中,字符串常量池是不会存储相同内容的字符串的
- 通过new+构造器的方式给一个字符串赋值,是数据在堆空间中开辟空间以后对应的地址值
StringBuffer的源码分析
- 问题1.System.out.println(sb2.length());
- 问题2.扩容问题:如果要添加的数组底层数组盛不下了,那就需要扩容底层的数组
默认情况下,扩容为原来容量的2倍+2,同时将原有的数组中的数组复制到新的数组中