2023. 12. 21. 19:25ㆍ2023.11.21-2024.05.31
package com.sukgi.wrapper;
public class Wrapper02 {
public static void main(String[] args) {
// 포장값 비교하기
// 포장값 비교하기 위해서 ==, =! 같은 연산자를 사용하지 않는 것.
// 이 연산자는 내부 값을 비교하는 것이 아니라 포장 객체의 참조를 비교
Integer obj1 = 127;
Integer obj2 = 127;
System.out.println(obj1 == obj2);
System.out.println("=======================================");
Integer obj3 = 300;
Integer obj4 = 300;
System.out.println(obj3 == obj4);//false로 나온다.
// 보통은 -128부터 127까지의 범위 내에서, 즉 Byte.MIN_VALUE에서 Byte.MAX_VALUE까지의 작은 정수에 대해서는 캐싱이 이루어집니다. 이 범위 내에서는 동일한 값에 대해 동일한 Integer 객체를 재사용하게 됩니다.
그러나 주어진 코드에서 Integer obj3 = 300;와 Integer obj4 = 300;는 범위를 벗어나는 큰 정수 값입니다.
이 경우, 캐싱이 이루어지지 않고 각각 다른 객체로 처리됩니다. 따라서 obj3 == obj4는 false가 되는 것이 맞습니다.
System.out.println("=======================================");
// 값 비교는?
// compateTo()
obj1 = 127;
obj2 = 10;
int result = obj1.compareTo(obj2);// 두 개체의 크기 비교
System.out.println(result);
// -1 0 1
System.out.println("=======================================");
if (result == 0) {
System.out.println("값이 같습니다.");
} else if (result < 0) {// -1
System.out.println("다릅니다./obj2가 클때");
} else {// 1
System.out.println("다릅니다./obj1이 클때");
}
}
}
true
=======================================
false
=======================================
1
=======================================
다릅니다./obj1이 클때
* compareTo() 메서드는 Comparable 인터페이스를 구현한 클래스에서 사용할 수 있는 메서드로,
두 객체의 크기를 비교할 때 사용됩니다. 이 메서드는 일반적으로 정렬이나 순서 매기기와 같은 작업에서 활용됩니다.
compareTo() 메서드의 반환값은 다음과 같은 규칙을 따릅니다:
- 만약 this 객체가 other 객체보다 작다면, -1을 반환합니다.
- 만약 this 객체와 other 객체가 같다면, 0을 반환합니다.
- 만약 this 객체가 other 객체보다 크다면, 1을 반환합니다.
이러한 규칙은 자연 순서를 따르는 객체들에 대해 비교를 할 때 일반적으로 사용됩니다. 예를 들어, 정수의 경우 숫자 크기를 기준으로 비교됩니다
'2023.11.21-2024.05.31' 카테고리의 다른 글
231221 JAVA List01(컬렉션 - list) (0) | 2023.12.21 |
---|---|
231221 JAVA Coll01(컬렉션 - list) (0) | 2023.12.21 |
231221 JAVA WrapperEx(래퍼클래스) (1) | 2023.12.21 |
231221 JAVA Test01 (programmers-콜라문제) (0) | 2023.12.21 |
231220 JAVA Test01 (programmers) (1) | 2023.12.21 |