В Java 8 введена дедупликация строк, которая может быть включена путем запуска JVM с опцией -XX:+UseStringDeduplication
, позволяющей сэкономить некоторую память, ссылаясь на аналогичные объекты String
, а не на дублирование. Конечно, эффективность варьируется от программы к программе в зависимости от использования Strings
, но я думаю, что можно с уверенностью сказать, что в целом это может считаться полезным для большинства приложений (если не для всех), заставляя меня задуматься о нескольких вещах:
Почему он не включен по умолчанию? Это из-за затрат, связанных с дедупликации или просто потому, что G1GC по-прежнему считается новым?
Существуют (или могут быть) какие-либо граничные случаи, когда вы не хотите использовать дедупликацию?