序言
相信在开发过程中,我们对字符串(String)的使用还是非常普遍的,但它也是很讲究的,像内存的占用、线程安全问题,都是需要注意的,无意中了解到一个新的api,就是intern() ,这个到底是干什么的呢?下面就带大家简单了解一下
功能描述
官方解释
返回字符串对象的规范化表示形式。
一个初始时为空的字符串池,它由类 String 私有地维护。
当调用 intern 方法时,如果池内已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。
它遵循对于任何两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true。
所有字面值字符串和字符串赋值常量表达式都是内部的。字符串字面值在《Java Language Specification》的 §3.10.5 中已定义。