Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Метод java.lang.String::equals интринзифицирован, поэтому познакового сравнения при исполнении не происходит.
А в чем неточность-то? Или JIT сравнивает строки не точно так же познаково, пусть и более быстро?
сравнить две строки без побайтового либо посимвольного прохода по ним невозможно.
Метод String::intern не вызывается автоматически для всех конструируемых строк, а оптимизации при компиляции применяются только к строковым литералам.
Так что второй вариант является ошибкой, и не должен работать ни в теории, ни на практике. Вот пример: https://ideone.com/c0OYGW
Можно. Посмотрите на String::intern.
Не надо пользоваться String::intern! С восклицательным знаком не надо. Хотите снизить потребление памяти строками в какой-то операции — складывайте строки в Map, и оттуда же забирайте.
Загубить производительность