자바 데이터 타입
-원시타입
-참조타입
원시타입과 참조타입은 각각 컴퓨터의 다른 메모리 영역에 저장된다
원시타입 8종류

boolean : 참 또는 거짓
char : 문자1개 'a'이거는 가능 / 'aa' 이건 안됨
byte short int long : 정수형 오른쪽으로 올수록 큰 정수를 담을 수 있음
float : 이걸로 실수형 데이터를 사용한다면 맨 뒤에 f또는 F를 붙임
double : 실수형 데이터 타입에서는 더블이 기본임
참조타입은 원시타입을 제외한 나머지 타입을 전부 참조타입이라고 한다
참조타입 변수는 stack영역에 실제 객체의 주소값을 저장하게 됨(리모콘 어쩌구)
Boxing 과 UnBoxing
Boxing 은 원시타입을 참조타입으로 변환시키는 것을 말하고
UnBoxing은 참조타입을 원시타입으로 변환시키는 것을 말함

원시타입은 null담을 수 없지만 참조타입은 가능함

원시타입은 제네릭 타입에서 사용할 수 없음
참조타입은 가능

제네릭타입이란 ?
제네릭(Generic) : 클래스 내부에서 사용할 데이터의 타입을 외부에서 지정하는 방법임(사용자가)
객체별로 다른 데이터타입의 자료가 저장될 수 있도록 한다

클래스 선언 문법에 <> 이부분이 제네릭임
저 리스트의 자료형 타입은 String 타입으로 지정되어 문자열 데이터만리스트에 담을 수 있게 됨
<>이렇게 나타내는 것을 다이아몬드 연산자라고 함

데이터 형식에 의존하지 않고 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하는 방법이다
제네릭 왜쓰는데 ?
1. 컴파일 시 타입 검사를 해서 예외 방지
2. 불필요한 캐스팅을 없애 성능 향상
제네릭 쓸때 주의할 점
1. 제네릭타입의 객체는 생성할 수 없음

2. static 멤버에 제네릭 타입이 올 수 없음
스테틱멤버는 클래스가 동일하게 공유하는 변수인데 제네릭 객체가 생성되기 전에 미리 자료 타입이 정해져 있어야하기 때문임
3. 제네릭으로 배열은 선언 주의점
제네릭 클래스자체를 배열로 만들수는 없음

근데 제네릭 타입의 배열선언은 됨
