нееее, просто иногда
String a = "abc";
String b = "abc";
компилятор не будет создавать 2 строки, а просто присвоит b ссылку такую же как и у а.
и тогда у них ссылки будут одинаковые.
Все равно сравнение идет по ссылке
Разобрался, в java == действительно сравнивает ссылки, я привык, что в .net он переопределен для строк и сравнивает по значению.