Skip to content

Commit a32b74e

Browse files
committed
Update java-basic-questions-02.md 补全对使用不同方法创建String类型对象时的描述
1 parent 7854144 commit a32b74e

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

docs/java/basis/java-basic-questions-02.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ System.out.println(42 == 42.0);// true
455455

456456
`String` 中的 `equals` 方法是被重写过的,因为 `Object``equals` 方法是比较的对象的内存地址,而 `String``equals` 方法比较的是对象的值。
457457

458-
当创建 `String` 类型的对象时,虚拟机会在常量池中查找有没有已经存在的值和要创建的值相同的对象,如果有就把它赋给当前引用。如果没有就在常量池中重新创建一个 `String` 对象
458+
当使用字符串字面量创建 `String` 类型的对象(如`String aa = "ab"`)时,虚拟机会在常量池中查找有没有已经存在的值和要创建的值相同的对象,如果有就把它赋给当前引用;如果没有,就在常量池中创建一个 `String` 对象并赋给当前引用。但当使用`new`关键字创建对象(如`String a = new String("ab")`)时,虚拟机总是会在堆内存中**创建一个新的对象**并使用常量池中的值(如果没有,会先在字符串常量池中创建字符串对象 "ab")进行初始化,然后赋给当前引用
459459

460460
`String``equals()`方法:
461461

0 commit comments

Comments
 (0)