자바의 데이터 타입
Primitive data (원시타입 데이터)
- byte, char, int, long, float, short, double, boolean
- null을 담을 수 없다.
- 상대적으로 적은 메모리 사용
- 스택 메모리에 올라간다.
- 제네릭의 타입으로 사용 가능하다.
- 접근 속도가 빠르다(성능 우위)
Object data (참조타입 데이터)
- 데이터는 힙 메모리에 올라가고 레퍼런스(주소값)만 스택메모리에 존재한다.
- nullable하다.
- 제네릭의 타입으로 사용 불가.
Wrpper Class
- primitive data를 object data화 시킨 클래스
autoboxing
- 컴파일러가 원시타입의 값을 wrapper 클래스의 객체로 변환하는 것
public class Sample {
private int score;
}
public Integer getScore() {
return score;
}
- 자바의 컴파일러가 자동으로 int -> Integer로 변환해주기 때문에 에러가 발생하지 않는다.
- 박싱된 타입의 두 인스턴스는 값이 같더라도 다르게 인식된다 (참조값이 다르다)
autoboxing
- 컴파일러가 wrapper 클래스 타입을 원시 타입으로 자동 변환하는 것
Integer a = new Integer(10);
int b = a;