JVM相关-常量池
Constant Pool Table is used to store literals and symbol references which would be loaded after loading class file.
运行期间也可以将新的常量放入池中,例如String类的intern()方法。
public String intern()
- Returns a canonical representation for the string object.
A pool of strings, initially empty, is maintained privately by the class
String
.When the intern method is invoked, if the pool already contains a string equal to this
String
object as determined by theequals(Object)
method, then the string from the pool is returned. Otherwise, thisString
object is added to the pool and a reference to thisString
object is returned.It follows that for any two strings
s
andt
,s.intern() == t.intern()
istrue
if and only ifs.equals(t)
istrue
.All literal strings and string-valued constant expressions are interned. String literals are defined in §3.10.5 of the Java Language Specification
- Returns:
- a string that has the same contents as this string, but is guaranteed to be from a pool of unique strings.