所以这里的问题很简单:有没有办法判断StringJava是否被实习?我的猜测是否定的,但我想知道是否有人知道更好.
Joa*_*uer 15
你可以找出是否String实习的唯一方法是调用intern()并检查它是否自行返回:
boolean hasBeenInternedBefore = myString.intern() == myString;
Run Code Online (Sandbox Code Playgroud)
这显然具有在String之前没有实习的情况下实习的缺点.
部分去题外话,有办法做"定制"与使用显式泳池实习Interner接口的番石榴(利用暴露的实现Interners类).这样做的好处是,Interner当它不再被引用时,能够让自己(和游戏池)被垃圾收集.