package k20231206;
public class StringTest {
public static void main(String[] args) {
// 자바는 기본 자료형(boolean, byte, char, short, int, long, float, double)으로 만든 변수는 일반 변수로 취급
// 클래스로 만든 변수(객체)는 참조 변수(데이터를 기억하는 변수가 아니고 데이터가 저장된 메모리의 주소를 기억하는 변수)로 취급한다.
// 문자열 "ABC"가 처음 사용되므리 메모리 어딘가에 "ABC"를 만들고 시작 주소를 str1에 저장한다.
String str1 = "ABC";
// 문자열 "ABC"가 이미 메모리에 존재하므로 이미 생성된 "ABC"의 시작 주소를 str2에 저장한다.
String str2 = "ABC";

if (str1 == str2) {
System.out.println("같다");
} else {
System.out.println("다르다");
}
String str3 = new String("ABC"); //new로 선언하면 메모리에 존재하든 안하든 새롭게 만들어서 저장한다.
if (str1 == str3) {
System.out.println("같다");
} else {
System.out.println("다르다");
}
// 결론 => 기본 자료형과 null을 제외한 모든 객체는 "=="을 사용해서 비교하지 않는다.
// 클래스로 생성한 객체는 equals() 메소드를 사용해서 비교해야 한다. **문자열은 equals() 메소드로 비교한다.
// 클래스로 생성한 객체는 "=="로 비교하면 내용을 비교하는 것이 아니라, 메모리에 저장된 주소를 비교한다.
if (str1.equals(str3)) {
System.out.println("같다");
} else {
System.out.println("다르다");
}
}
}
'java&eclipse 코딩 알고리즘 > 20231206' 카테고리의 다른 글
| WeekdayTest2 (0) | 2023.12.14 |
|---|---|
| WeekdayTest (0) | 2023.12.14 |
| StringMethodTest (0) | 2023.12.14 |
| SosooTest (0) | 2023.12.14 |
| SooinsooTest (0) | 2023.12.14 |