Data Type (자료형)
데이터를 저장하기 위해 어떤 종류의 데이터를 어떤 크기로 담을 것인지 지정하는 것
- 숫자인지 문자인지, 숫자라면 어느 정도 범위까지 저장할 것인지 선언
- 변수나 상수는 자료형을 먼저 선언해야 함
Primitive Type (기본 자료형)
실제 값을 저장한다.
- Integer (정수형): byte, short, int, long
- Overflow: 정수형 변수는 자신이 저장할 수 있는 범위를 벗어날 경우 최소값부터 다시 반복하는 Circular 구조다.
- 예) byte의 경우 -128 ~ 127 범위를 벗어나면 -128부터 시작한다.
- 범위를 벗어나서 초기화하는 것은 허용하지 않는다.
- Floating-point (실수형): float, double
- 부동 소수점인 가수(mentissa)와 지수(exponent)로 나뉘어 표현
- 지수: 표현할 수 있는 값의 범위
- 가수: 값의 정밀도에 영향을 미치는 요소
- 예) 실수 3.1415 → 0.31415 x 10¹이며, 가수는 0.31415이고 지수는 1
- Character (문자형): char
- char는 유니코드(Unicode)가 기본이며, 문자를 저장 시 유니코드 표에 있는 문자와 매칭되는 이진코드를 정수로 메모리에 저장한다.
- char는 단 하나의 문자 저장만 가능하기 때문에 문자열을 저장하기 위해서 String class를 사용해야 한다.
- Boolean (논리형): boolean
- 자료 처리의 최소 단위인 1byte로 표현된다.
💡 기본 자료형의 변수들이 생성되면 JVM의 Stack Area에 저장된다.
Reference Type (참조 자료형)
기본 자료형이 아닌 모든 데이터 타입은 참조 자료형이다.
참조 변수는 객체에 대한 메모리 주소를 가지고 있다.
형 변환
형 변환은 값의 타입을 다른 타입으로 변환하는 것(기본형과 참조형 사이는 JDK 1.5부터 추가된 autoboxing으로 가능하다)
자동 형 변환(up-casting)
큰 자료형에 작은 자료형의 값을 대입하는 경우
byte → int / int → long // long → int x
- 정수형: 연산자를 사용하게 되면 기본 자료형들은 정수형의 기본형인 int type으로 자동 형 변환된다.
- 부동 소수점: double type이 기본형
강제 형 변환(down-casting)
작은 자료형에 큰 자료형의 값을 대입하는 경우
int → byte: (byte) int
Literal (리터럴)
변수나 상수나 저장하는 값 그 자체
123, ‘A’ 등
Constant (상수)
변수와 같이 값을 저장하는 공간
한 번 저장된 값을 변경할 수 없는 고정 데이터를 유지해야 할 경우 사용
- PI값이 3.14라는 고정 값 유지가 필요한 경우 사용
- final 키워드를 붙여서 선언
- 예) final double CONSTANT_VALUE = 10.5;
CONSTANT_VALUE = 20.5; //상수에 할당된 값을 변경할 경우 ERROR
💡 상수는 Method Area의 Constant Pool에 저장된다.
Variable (변수)
프로그램이 실행되는 동안 값을 저장하는 공간
필요 시에 값을 변경할 수 있음
- 자료형을 선언한 후 변수 이름을 선언하면 어떤 타입의 데이터가 어떤 이름의 변수에 저장되는지 Java가 알 수 있음
Argument와 Parameter