본문 바로가기
java&eclipse 코딩 알고리즘/20231206

StringTest

by 몽상크리에이터 2023. 12. 14.

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