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