- String内部使用
char[]
字符数组储存数据。 - String不可改变,对String对象的修改都是返回一个新的对象。
String
类是一个final
类,不能继承。- 被创建的String对象,都会被放入字符串常量池。
创建String对象的几种方法:
- 使用
new
创建- 编译器首先会在堆创建对象,然后检查字符串常量区是否有该字符串常量池。没有就创建一个加入。
String s = new String("ok");
这种方式可能会创建两个对象。
- 使用
=
赋值创建- 编译器首先检查常量池是否已经存在,存在则直接返回已经存在的;否则创建一个新的返回,并加入常量池。
String s = "ok";
这种方式最多创建一个对象。
- 使用
valueOf()
创建- 与使用
=
创建一样。
- 与使用
所以推荐使用
=
和valueOf()
创建字符串。
String不可改变,要使用可变的字符串应使用StringBuffer
和StringBuilder
- StringBuffer : 线程安全,同步的可变字符串。
- StringBuilder : 线程不安全,非同步的可变字符串。
1 | String s = "String"; |
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!