반응형
배열은 각 항목에 직접 값을 갖고 있지만 참조타입(클래스, 인터페이스) 배열은 각 항목에 객체의 번지를 가지고 있음.
string(클래스타입) 배열은 각 항목에 문자열 그 자체를 가지고 있는 것이 아니라 그 객체의 주소를 가지고 있음.
그래서 배열 항목 간에 문자열을 비교하기 위해서는 == 연산자(객체의 번지비교) 대신 equals() 메소드를 사용해야 함
처음 비교값은 "java"라는 동일한 객체를 참조하기 때문에 true가 나오고
두번째는 String 객체를 new 연산자로 생성해 새로운 String 객체가 생성되기 때문에 다른 객체를 참조하므로 false
세번째는 equals()메소드로 문자열만 비교했기 때문에 true가 나온다.
반응형
'STUDY > JAVA' 카테고리의 다른 글
추상클래스(Abastract) 개념 및 예제 (0) | 2022.10.28 |
---|---|
열거타입(Enumeration type) (0) | 2022.10.27 |
List와 Array(배열)의 차이점 + ArrayList (0) | 2022.10.27 |
오버로딩과 오버라이딩의 차이점 (0) | 2022.10.26 |
JAVA - Stream(스트림) (0) | 2022.05.16 |