Java Data Type
#1 Primitive Type의 종류와 값의 범위
1-1 종류(기본값)
-
byte(0), short(0), int(0), long(0), float(0.0), double(0.0), boolean(false), char
-
int
- 저장공간(memory) : 4byte
- 범위 : 2^-31 ~ 2^31 -1
- 기본값 : 0
- method에서 int를 정의할 때는 꼭 값을 할당해야한다(초기화)
int a = 3;
#2 Primitive Type & Reference Type
2-1 Primitive Type 개념
- 메모리 Stack 영역에 값이 저장된다
- 기본값이 지정되어있어, null을 저장할 수 없다.
2-2 Reference Type 개념
- 값이 아닌 주소가 heap영역에 저장된다
- null을 다룰 수 있다.
- 참조형 타입은 객체가 위치한 메모리 주소를 저장함으로써 객체를 가리킨다
#3 Literal
3-1 Literal 개념
- 어떤 변수에 의해 저장되는 값 -> 값 자체로서 변화하지 않는 것
- 변수나 상수에 저장되는 값 자체
3-2 Literal 종류
- 정수 리터럴, 실수 리터럴, 문자 리터럴, boolean 리터럴, 문자열 리터럴
Literal Examples
int a = 10;
#3 변수 선언 및 초기화
#3-1 변수의 선언
- 변수의 선언은 곧 저장공간을 확보하는 것을 말한다.
#3-2 변수의 초기화
#4 변수의 Scope & Life time
#4-1 변수의 Scope
#4-2 변수의 Life time
- 변수가 메모리 안에서 언제까지 살아있는지에 관한 것
#4-3 Instance Variables
- Class 안에서 선언 되는 변수로써, 메서드 또는 블럭안에서 선언되는 변수와는 다르다.
- Scope
- static method를 제외한 class 전체
- Life time
- Class를 인스턴스화한 객체가 Memory에서 사라질 때까지
#4-4 Class Variables(static variables)
- Class 안에서 선언되는 변수로써, static 키워드가 포함되어 선언된다
- static 키워드가 붙은 필드 변수 -> 전역적으로 접근 가능
- Instance 생성 전에 미리 로드되어 생성된다
- Heap 영역에서 관리된다.
- Scope
- Class 전체
- Life time
- 프로그램 종료시
#4-5 Local Variables
- Instance Variables, 및 Class Variables를 제외한 모든 변수
- Scope
- 변수가 선언된 블럭의 내부
- Life time
- 컨트롤이 변수가 선언된 블럭 내부에 있는 동안
#5-1 Type Casting
- 크기가 더 큰 자료형을 더 작은 자료형에 대입하는 것
- 데이터의 손실이나 변형이 올 수 있다.
- 자식클래스 -> 부모클래스
- 명시적으로 표시해야 된다
int i = 10;
long j = (long)i
- 크기가 더 작은 자료형을 더 큰 자료형에 대입하는 것
- 데이터의 손실이나 변형이 없다
- Type Casting과 다르게 명시적으로 표현할 필요가 없다
- 부모클래스 -> 자식클래스