🔎 Wrapper Class 란?
Boxing
: 기본타입 -> 래퍼 클래스
Unboxing
: 래퍼 클래스 -> 기본타입
프로그램에 따라 기본 타입의 데이터를 객체로 취급해야 하는 경우가 있기 때문에, 기본 타입의 데이터를 먼저 객체로 변환한 후 작업을 수행해주는 것을 Wrapper(래퍼) Class라고 한다. 각각의 타입에 해당하는 데이터를 인수로 전달받아, 해당 값을 가지는 객체로 만들어 준다.
단, Boxing이 제공된다 하더라도 추가 연산이 들어가기 때문에 프로그램 성능이 안좋아질 수 있다! 따라서 불필요한 Auto Casting은 없도록 해야 한다.
boolean
byte
short
int
long
long l = 21465789354L;
float, double
float f = 1234.658F;
기본형 타입을 제외한 타입이 참조형 타입에 속함
자바의 최상인 java.lang.Object클래스를 상속하는 모든 클래스를 지칭함
new로 인해 생성되는 것은 Heap영역에 생성되고, Garbage Collector가 돌면서 메모리를 해제함.
빈 객체를 의미하는 null이 존재. (단, 객체나 배열을 null값으로 받으면 NullPointException이 발생하므로 변수 값을 넣어주어야 함)
Heap 메모리에 생성된 인스턴스는 메소드나 각종 인터페이스에 접근하기 위해 Stack 영역에 존재하는 일종의 '포인터'인 참조값을 가지고 이를 통해 인스턴스를 핸들링함.
종류 : Class type(클래스 타입), Interface type(인터페이스 타입), Array type(배열 타입), Enum type(열거 타입)이 있음
📍 String Class
참조형에 속하지만 사용은 기본형처럼 사용함.
따라서 기본형 타입처럼 불변(immutable)한 객체임
물론 String 클래스의 값을 변경하는 메소드가 있음 -> 새로운 String 클래스를 만들어서 바꾸는 것처럼 보이는 것임.
값의 비교는 ==가 아닌, .equals() 메소드로 사용됨