1、String其实常被称为不可变字符串类型,它的对象在创建后不能被更改。
2、字符串对象的特点:
-
- 双引号创建的字符串对象,在字符串常量池中存储同一个。
- 通过new构造器创建的字符串对象,在堆内存中分开存储。
以""方式给出的字符串对象,在字符串常量池中存储。
创建的对象没有改变,每次都在指向新对象。
3、String是不可变字符串的原因:
-
- String变量每次的修改其实都是产生并指向了新的字符串对象。
- 原来的字符串对象都是没有改变的,所以称不可变字符串。
4、创建字符串的方式:
-
- 方式一:直接使用 "" 定义。(推荐方式)
-
-
- String name = "奥利奥";
-
-
- 方式二:通过String类的构造器创建对象。
-
- 方式一和方式二的区别:
-
-
- 以 "" 方式给出的字符串对象,在字符串常量池中存储,而且相同内容只会在其中存储一份。
- 通过构造器new对象,每new一次都会产生一个新对象,放在堆内存中。
-
字符串的内容比较不适合用“==”比较,因为“==”比较的是地址。使用equals进行内容的比较,equalsIgnoreCase忽略英文大小写的内容比较。
截图来源于黑马程序员