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 the equals(Object) method, then the string from the pool is returned. Otherwise, this String object is added to the pool and a reference to this String object is returned.

It follows that for any two strings s and ts.intern() == t.intern() is true if and only if s.equals(t) is true.

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.
posted @ 2013-01-31 23:47  Copyright  阅读(123)  评论(0编辑  收藏  举报