Я хочу убедиться, что я не избиваю пространство перменто, поэтому я тщательно интернирую свои струны.Я правильно интернирую свои струны?
Являются ли эти два утверждения эквивалентными?
String s1 = ("hello" + "world").intern();
String s2 = "hello".intern() + "world".intern();
UPDATE
Как обрамлении мой вопрос был совершенно отличается от фактического применения. Вот метод, в котором я использую intern.
public String toAddress(Transport transport)
{
Constraint.NonNullArgument.check(transport, "transport");
switch(transport)
{
case GOOGLE:
case MSN:
return (transport.code() + PERIOD + _domain).intern();
case YAHOO:
default:
return _domain;
}
}
private String _domain; // is initialized during constructor
private static final String PERIOD = ".";
Прочитать http://kohlerm.blogspot.com/2009/01/is -javalangstringintern-really-evil.html –
intern() не злой ... вам это не понадобится –
Я программировал на Java уже много лет и только дважды использовал intern(), делая очень топор ü оптимизацию производительности некоторых серверных программ, которые необходимы для поддержки как можно большего количества сеансов. 99.В 99% случаев вы никогда не должны его использовать, и если вы найдете место, где это имеет смысл, обязательно подумайте о влиянии на ваше пространство перменто: вы хотите только ставить небольшие ограниченные наборы литералов. –