안녕하세요🙂

 

3주차 선택미션은 기본 API 클래스 중 Wrapper 클래스의 포장 값 비교 개념을 이용한 마무리 문제 풀어보기였어요 .

( P.512 #8번 )

 

해당 문제를 풀기위해 필요했던 개념은

👉🏻1. Wrapper클래스의 자동박싱

👉🏻2. Wrapper클래스의 포장 값 비교

입니다.

 

👉🏻1. 자동박싱 : 주석과 같이 기본 타입에 대응되는 클래스에 기본 타입의 값을 대입하면 발생합니다.

📍기본 타입에 대응 되는 클래스(포장클래스)란 ?

     기본 타입의 첫문자를 대문자로 바꾼 이름을 가지고 있고 다음과 같아요!

기본타입 포장 클래스
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Double
boolean Boolean

 

 👉🏻2. 포장 값 비교

이 원리로 인해 == 연산자를 이용한 포장 객체의 내부 값을 비교한 결과가 서로 다른 건데요

사실 ==, != 연산자는 포장객체 내부에 저장된 값이 정확히 어떤 값인지 알지 못할 때는 쓰지 않는 것이 좋다고 해요.

📍==, != 연산자는 

    박싱된 값이 타입의 값의 범위 내에 존재 한다면 ➜ 값을 비교

    그렇지 않으면 ➜ 포장 객체의 참조를 비교합니다. 

 

100이란 값은 Integer로 자동박싱 된 int 타입인 100인데

int 타입의 값의 범위는 -128 ~ (100) 127 이라서 == 연산자로 값비교가 가능했지만

300은 값의 범위를 초과 하기때문에 객체의 참조 비교가 발생했고 그래서 false라는 값이 리턴 되었습니다!

 

3주차 선택미션 끝! 🙋🏻‍♀️

 

➕교재를 가지고 정리해본 내용입니다~ 필요하신 분들이 있다면 많이 참고해주세요 🙂

 

설정

트랙백

댓글