본문 바로가기
카테고리 없음

[Java] equals() 와 비교연산자 == 의 차이점에 대해 알아보자.

by MilkSweetpotato 2020. 11. 24.

예제1) 비교연산자 == 의 사용 (같은 주소야?)

class Main {
	public static void main(String[] args) {
		String str1 = "hello world"; // 주소.
		String str2 = "hello world"; // 주소가 같다.
		String str3 = new String("hello world"); // new 생성자로 인해 생성된 새 주소.
		String str4 = new String("hello world"); // new 생성자로 인해 생성된 또 다른 새 주소.
		
		// example 1 --------------------- true가 출력된다.
		if (str1 == str2) {
			System.out.println("ture");
		} else {
			System.out.println("false");
		}
		
		// example 2 --------------------- false 가 출력된다.
		if (str1 == str3) {
			System.out.println("ture");
		} else {
			System.out.println("false");
		}
		
		// example 3 --------------------- false 가 출력된다.
		if (str3 == str4) {
			System.out.println("ture");
		} else {
			System.out.println("false");
		}
	}
}

 

예제2) equals() 사용 (같은 내용이야?)

class Main {
	public static void main(String[] args) {
		String str1 = "hello world"; // 주소
		String str2 = "hello world"; // 주소가 같다
		String str3 = new String("hello world"); // new 생성자로 인해 생성된 새 주소
		String str4 = new String("hello world"); // new 생성자로 인해 생성된 또 다른 새 주소
		
		// example 1 --------------------- true가 출력된다. 같은주소에 같은 내용 "hello world".
		if (str1.equals(str2)) {
			System.out.println("ture");
		} else {
			System.out.println("false");
		}
		
		/* example 2 
		------------- true가 출력된다. 서로다른 두 주소안의 내용이 "hello world"로 같다.*/
        	if (str1.equals(str3)) {
			System.out.println("ture");
		} else {
			System.out.println("false");
		}
		
       		/* example 3 
		------------- true가 출력된다. 서로다른 두 주소안의 내용이 "hello world"로 같다.*/
      	 	if (str3.equals(str3)) {
			System.out.println("ture");
		} else {
			System.out.println("false");
		}
        
       
		}
	}
}