Java - 告诉String是否被实习?

Mas*_*psi 14 java string

所以这里的问题很简单:有没有办法判断StringJava是否被实习?我的猜测是否定的,但我想知道是否有人知道更好.

Joa*_*uer 15

你可以找出是否String实习的唯一方法是调用intern()并检查它是否自行返回:

boolean hasBeenInternedBefore = myString.intern() == myString;
Run Code Online (Sandbox Code Playgroud)

这显然具有在String之前没有实习的情况下实习的缺点.

部分去题外话,有办法做"定制"与使用显式泳池实习Interner接口番石榴(利用暴露的实现Interners).这样做的好处是,Interner当它不再被引用时,能够让自己(和游戏池)被垃圾收集.

  • @Riduidel至少你知道猫*是否*活着:-) (6认同)