본문 바로가기
[JAVA]/[자바 기초]

[자바 기초] String 클래스

by 북방바다코끼리표범 2023. 8. 11.

복습

https://shins99.tistory.com/36

 

[자바 기초] 템플릿 메서드 패턴 (Template Method Pattern)

복습 https://shins99.tistory.com/35 [자바 기초] 추상 클래스 복습 https://shins99.tistory.com/34 [자바 기초] 다형성 복습 https://shins99.tistory.com/32 [JAVA] 상속 복습 https://shins99.tistory.com/25 [자바 기초] 배열 복습 h

shins99.tistory.com


💡 학습 목표 

1. 문자열 생성 방법을 이해하자 
2. 상수풀 영역이라는 것을 이해 하자. (Constant Pool)
3. 값을 비교할 때는 equals 를 반드시 사용하자.

 

String

- 문자열 이라는 데이터를 보관, 연산 사용

 

문자열1. equals(문자열 2)

if(str1.equals(str2)) {
			System.out.println("같은 값이에요. ");
		} else {
			System.out.println("다른 값이에요. ");
		}
        
- 문자열 1과 문자열 2의 주소값이 같으면 true 반환
- 문자열.equals(변수) ← null에러 방지

문자열1. equalsIgnoreCase(문자열 2)

if(str1.equalsIgnoreCase(str2)) {
			System.out.println("같은 값이에요. ");
		} else {
			System.out.println("다른 값이에요. ");
		}
        
- 문자열 1과 문자열 2의 주소값이 같으면 true 반환

문자열.indexOf("문자")

문자열에서 해당 문자가 첫 번째로 등장하는 위치의 인덱스 반환

문자열(String) = 문자열.indexOf("S") == 0번째

 

상수 풀 메모리 영역

// String 
		// 문자열이라는 데이터를 보관, 연산 사용 
		// static 영역, 데이터영역, --> 상수 풀 영역 
		
		String str1 = "반가워";
		String str2 = new String("반가워");
		String str3 = "반가워";
		
		System.out.println(str1);
		System.out.println(str2);
		
		// 시나리오 1 
		if(str1 == str2) {
			System.out.println("주소값이 같아요!");
		} else {
			System.out.println("주소값이 달라요");
		}
		
		
		// 시나리오 2
		// 리터럴 방식으로 생성한 문자열은 
		// 이미 생성한 값이 똑같다면 새로 만들지 않고 
		// 재활용 한다. 
		if(str1 == str3) {
			System.out.println("주소 같음");
		} else {
			System.out.println("주소 다름");
		}
		
		System.out.println("******************");
		// 시나리오 3 
		str3 = "반갑습니다"; // 값을 변경 
		if(str1 == str3) {
			System.out.println("주소 같아요~ 다시 확인");
		} else {
			System.out.println("주소 달라요! 다시 확인");
		}
		
		System.out.println("---------------------------");
		// 시나리오 4 
		// 문자열에 값을 비교할려면 equals를 반드시 사용하세요
		if(str1.equals(str2)) {
			System.out.println("같은 값이에요. ");
		} else {
			System.out.println("다른 값이에요. ");
		}
	}
}