자바에서 동등 비교

비교 연산자 == 와 .equals() 메소드의 차이

 

equals() : 내용 자체 비교하여 결과를 Boolean 값으로 반환

== : 주소값을 비교 결과를 Boolean 값으로 반환, 두 객체가 같은 주소값을 가리킬 때 True 반환

 

따라서 java에서 문자, 객체 비교 시

equals를 사용하자!

String str1 = "test";
String str2 = "test";

String str3 = new String("test");
String str4 = new String("test");
String str5 = str4

system.out.Println(str1 == str2); //true
system.out.Println(str3 == str4); //false
system.out.Println(str4 == str5); //true

 

자바에서 원시 데이터타입을 할 때는 동등 비교 연산자(==) 사용,

equals는 사용못함 에러남, 원시데이터타입은 equals() 가지고 있지도 않음

 

원시데이터타입(Primitive Data Type)

  • boolean
  • int
  • double
  • char

non primitive

  • String
  • Array
  • Date
  • File

 

예제

package edu.exam05.string02;

/*==의 의미는 같은 객체를 가리키고 있느냐?
equals의 의미는 문자열의 내용이 같으냐?
Primitive Type(기본 자료형 타입)은 ==써도 괜찮다
*/
public class ImmutableString {
	public static void main(String[] args) {
		String str0 = "My String";
		String str1 = "My String";
		String str2 = new String("My String");
		
		if(str0==str1)
			System.out.println("같다");
		else
			System.out.println("다르다");
		
		if(str0==str2)
			System.out.println("같다");
		else
			System.out.println("다르다");
				
		
		if(str0.equals(str1))
			System.out.println("같다");
		else
			System.out.println("다르다");
		
		if(str0.equals(str2))
			System.out.println("같다");
		else
			System.out.println("다르다");
	}
}

 

 

 

 

compareTo() 메소드

-문자열 or 숫자의 비교
-숫자 비교 : 크다(1), 같다(0), 작다(-1)로 결과값 리턴
-문자열 비교 : 같다(0),

 

package edu.exam05.homework;

public class compareTo {
	public static void main(String[] args) {
		String str1 = "A";
		String str2 = "A";
		String str3 = "C";
	
		System.out.println("같  다  : "+str1.compareTo("A"));
		System.out.println("같  다  : "+str1.compareTo(str2));
		System.out.println("다르다  : "+str2.compareTo(str3));
	}
}

'JAVA > 2' 카테고리의 다른 글

[JAVA] 랜덤값 구하기  (0) 2020.02.09
[JAVA] 현재 시간 구하기  (0) 2020.02.08
[JAVA] String / StringBuilder / StringBuffer 차이  (0) 2020.01.15
java에서 while(1) while(0)  (0) 2020.01.06
length , length(), size() 차이  (0) 2020.01.06

+ Recent posts