ex) String str = "abc"; System.out.println(str=="abc"); 로 하면 결과값이 true가 출력되는데 String str = new String("abc"); 로 하면 결과값이 어째서 false가 나오는건가요? String str = "abc"; 도 마찬가지로 원래 new를 항상 사용하여 데이터를 대입하여야 하나 편의상 자바에서 생략해주기 때문에 new를 명시 하지 않고도 사용 가능한것 아닌가요? 그게 아니라 하여도 String str = new String("abc"); 를 할경우 최종적으로 str에는 "abc"라는 문자가 담기는데 어째서 false라는 결과가 나오는지 궁금합니다.
# 같은 문자열 객체가 아니기 때문입니다 참조링크: https://t.ly/5VgX