day20_StringEx7

육희영·2021년 11월 1일
0
package com.java1.day20;

//String 클래스..(https://docs.oracle.com/javase/8/docs/api 참조)
//new String() 생성자를 사용해서 문자열을 만드는 방법과
//직접 값을 입력해 주는 방식의 차이를 확인해보자!
//String 클래스는 equals 를 오버라이딩 해서 값을 비교하도록 했다.
public class StringEx7 {
	public static void main(String[] args) {
		String str1 = "abc"; 	// String 에 값을 직접 입력해 주는 방식
		String str2 = "abc"; 	

		if(str1 == str2) { 	// new String() 로 클래스를 생성하지 않았다.
            System.out.println(" str1 == str2 ? true"); 
		} else { 
	        System.out.println(" str1 == str2 ? false");       
		} 
	
		if(str1.equals(str2)) { 
	        System.out.println(" str1.equals(str2) ? true"); 
		} else { 
	        System.out.println(" str1.equals(str2) ? false");       
		} 
		System.out.println(); 
	
		String str3 = new String("abc"); // 같은 값을 가지지만 다른 메모리에 저장된다.
		String str4 = new String("abc"); 
		//앞의 EqualsEx6 예제는 문자열이 아닌 int값을 넣어서 비교했으므로 결과값이 다르게 나온다.
		
		if(str3 == str4) { 		// 서로 다른 메모리에 값을 가지고 있다.
	        System.out.println(" str3 == str4 ? true"); 
		} else { 
	        System.out.println(" str3 == str4 ? false");       
		} 
		
		if(str3.equals(str4)) { 	// 다른 메모리에 있어도 값을 제대로 비교한다.(문자열 비교시 equals메서드 사용하세요)
	        System.out.println(" str3.equals(str4) ? true"); 
		} else { 
	        System.out.println(" str3.equals(str4) ? false");       
		} 
	}
}
//equals 메서드는 모두 true를 리턴했다.. 그래서 문자열 비교시 equals 메서드 사용을 권장한다.

출력결과

 str1 == str2 ? true
 str1.equals(str2) ? true

 str3 == str4 ? false
 str3.equals(str4) ? true

0개의 댓글

관련 채용 정보