Update Java 基础.md

This commit is contained in:
blueli 2018-09-10 15:45:26 +08:00 committed by GitHub
parent 8a9b8b15ae
commit 5c5c056de6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -196,9 +196,9 @@ String 不可变性天生具备线程安全,可以在多个线程中安全地
## String Pool
字符串常量池String Poll保存着所有字符串字面量literal strings这些字面量在编译时期就确定。不仅如此还可以使用 String 的 intern() 方法在运行过程中将字符串添加到 String Poll 中。
字符串常量池String Pool保存着所有字符串字面量literal strings这些字面量在编译时期就确定。不仅如此还可以使用 String 的 intern() 方法在运行过程中将字符串添加到 String Pool 中。
当一个字符串调用 intern() 方法时,如果 String Poll 中已经存在一个字符串和该字符串值相等(使用 equals() 方法进行确定),那么就会返回 String Poll 中字符串的引用;否则,就会在 String Poll 中添加一个新的字符串,并返回这个新字符串的引用。
当一个字符串调用 intern() 方法时,如果 String Pool 中已经存在一个字符串和该字符串值相等(使用 equals() 方法进行确定),那么就会返回 String Pool 中字符串的引用;否则,就会在 String Pool 中添加一个新的字符串,并返回这个新字符串的引用。
下面示例中s1 和 s2 采用 new String() 的方式新建了两个不同字符串,而 s3 和 s4 是通过 s1.intern() 方法取得一个字符串引用。intern() 首先把 s1 引用的字符串放到 String Pool 中,然后返回这个字符串引用。因此 s3 和 s4 引用的是同一个字符串。