Size: a a a

2020 July 24

U

UsernameAK in pro.jvm
Nick
т.е. вы реально хотите использовать == для решения сравнения строк? это что за проект что за задача, где можно забить на читаемость и предсказуемость
Надо забить на читаемость и предсказуемость в пользу производительности
источник

U

UsernameAK in pro.jvm
У интернированных строк сравнение за O(1)
источник

N

Nick in pro.jvm
я мож чего забыл, но в еквалсе первым действием идет сравнение объектов через ==, так какой выигрыш?
источник

DC

Denis Chikanov in pro.jvm
UsernameAK
У интернированных строк сравнение за O(1)
Гм.
А в какой такой интересной задаче у вас "горячее" место по производительности - сравнение строк? И откуда уверенность, что такая оптимизация нужна?
источник

U

UsernameAK in pro.jvm
Nick
я мож чего забыл, но в еквалсе первым действием идет сравнение объектов через ==, так какой выигрыш?
Так никто не спорит
источник

U

UsernameAK in pro.jvm
Еквалс никто не отменял
источник

AK

Alexander Komarov in pro.jvm
Denis Chikanov
Гм.
А в какой такой интересной задаче у вас "горячее" место по производительности - сравнение строк? И откуда уверенность, что такая оптимизация нужна?
вы не рефлексируйте, а оптимизируйте.
источник

DC

Denis Chikanov in pro.jvm
источник

U

UsernameAK in pro.jvm
Denis Chikanov
Гм.
А в какой такой интересной задаче у вас "горячее" место по производительности - сравнение строк? И откуда уверенность, что такая оптимизация нужна?
Не важно в какой, но там это реально было горячим местом
источник

AK

Alexander Komarov in pro.jvm
а то вдруг хайлоад, а мы не готовы
источник

DC

Denis Chikanov in pro.jvm
UsernameAK
Не важно в какой, но там это реально было горячим местом
Вместо этого горячим местом станет интернирование. Притом куда более горячим.
источник

U

UsernameAK in pro.jvm
Denis Chikanov
Вместо этого горячим местом станет интернирование. Притом куда более горячим.
Так они литералы, они при загрузке класса интернируются
источник

I

Igor in pro.jvm
Alexander Komarov
вы не рефлексируйте, а оптимизируйте.
источник

U

UsernameAK in pro.jvm
UsernameAK
Так они литералы, они при загрузке класса интернируются
.
источник

DC

Denis Chikanov in pro.jvm
UsernameAK
Так они литералы, они при загрузке класса интернируются
Так если так, то первая строка String::equals() вернёт true, и всё
источник

U

UsernameAK in pro.jvm
Denis Chikanov
Так если так, то первая строка String::equals() вернёт true, и всё
Ну да)
источник

DC

Denis Chikanov in pro.jvm
UsernameAK
Ну да)
...и тогда сравнение строк не было вашим узким местом.
источник

U

UsernameAK in pro.jvm
Там equals и юзается, я забыл уточнить
источник

U

UsernameAK in pro.jvm
Denis Chikanov
...и тогда сравнение строк не было вашим узким местом.
До этого там было сравнение строк в нативном коде
источник

DC

Denis Chikanov in pro.jvm
UsernameAK
другими словами: все строковые литералы интернированы?
Тогда я ничего не понимаю - зачем вот этот вопрос
источник