본문 바로가기
Kosta DevOps 과정 280기/Java

자료형의 종류에 따른 값 비교

by 롯슈83 2024. 5. 13.

 

알아두기

  • 연산자 == 은 해당 변수가 가지고 있는 값을 비교한다.
  • 참조자료형은 자신이 직접 값을 가지는 것이 아니라, 값이 있는 메모리를 참조하는 것이며, 주소값을 가진다.
  • 원시자료형(기본 자료형)은 자신이 직접 값을 가진다.

참조 자료형이 담고 있는 값

  • String 은 참조 자료형이므로
    String a = "abc"를 선언했을 때,
    변수 a의 값은 "abc"가 아닌 문자열 "abc"의 주소를 담고있다.
public class D04ArrayEqualTest {
	public static void main(String [] args) {
		int []a = {1,2,3,4,5};
		int []b = {1,2,3,4,5};
		if(a == b) {
			System.out.println("배열의 내용이 일치합니다.");
		}else {
			System.out.println("배열의 내용이 일치하지 않습니다.");
			System.out.println(a +"\t"+ b);
		}
	}
}

 

참조 자료형과 원시 자료형 비교의 차이

  • 원시 자료형처럼 값이 아닌 주소를 비교하게 된다. 따라서 같은 객체를 가르키고 있을 경우에만 ==의 연산자를 사용하였을 때, true 가 성립이 되는 것이다.(가지고 있는 메모리 주소값이 같을 때)
public class D05PrimitiveTypeAndArray {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int age1 = 20;
		int age2 = 20;
		double height = 185.9;
		int []data1 = {10, 20, 30, 40, 50};
		int []data2 = {10, 20, 30, 40, 50};
		
		if(age1 == age2) {
			System.out.println("나이가 같아요");
		}else {
			System.out.println("배열이 같아요");
		}
		
		if (data1 == data2) {
			System.out.println("나이가 같아요");
		} else {
			System.out.println("배열이 달라요");
		}
	}

}

'Kosta DevOps 과정 280기 > Java' 카테고리의 다른 글

메소드  (0) 2024.05.14
객체와 반복문  (0) 2024.05.14
배열  (0) 2024.05.13
String과 다양한 함수와 속성  (0) 2024.05.13
제어문(4)-break, continue  (0) 2024.05.13