Я сделал это код десериализации / материализации, когда есть хороший шанс повторных значений (почти перечисление, но не совсем).При десериализации тысяч записей это может дать значительное преимущество памяти.Однако в таких случаях вы можете предпочесть использовать отдельный внутренний кэш, чтобы избежать насыщения общего (или, может быть, общего, все в порядке; это зависит от сценария).Ключевым моментом здесь является: сценарий, в котором вы, вероятно, будете иметь множество разных экземпляров строк с одинаковым значением.Десериализация является большим кандидатом там.Следует также отметить, что при проверке встроенного кэша наблюдаются некоторые накладные расходы процессора (постепенно увеличиваются накладные расходы при добавлении данных), поэтому это следует делать, если есть вероятность, что созданные объекты будут жить дольше, чем gen-0;если они всегда будут собираться быстро в любом случае , тогда не стоит менять их на интернированные версии.