728x90
equals()
"String 클래스 내에서" equals() 메소드는 "대상의 내용"을 비교
== 연산자
== 연산자는 "대상의 주소값"을 비교
String a = new String("abc"); 와 String b = "abc"; 의 차이는 무엇인가?
String a = new String("abc");
전자는 abc 값을 가지는 문자열 객체를 힙에 생성해 참조하는 것이기에 문자열이 같아도 다른 인스턴스를 참조하는 것
String b = "abc";
후자는 "abc" 문자 리터럴을 이용해 객체 생성했으므로 문자열이 같으면 하나의 인스턴스를 참조한다.
따라서 전자는 == 가 False, equals 가 True
'프로그래밍 > JAVA' 카테고리의 다른 글
[Java] 단위테스트: System.out.println() 과 Scanner.in 이 들어간 코드를 어떻게 테스트할까? (0) | 2021.01.19 |
---|---|
[Java] JVM, JRE, JDK 한줄 정리 (0) | 2020.10.30 |
[Java] abstract class 추상클래스란? (0) | 2020.10.22 |
[Java] StringTokenizer, StringBuffer, StringBuilder 클래스 차이 (0) | 2020.10.03 |
[JAVA] 예외 (Exception) (0) | 2020.09.29 |