1. Overview
java programming language 에 보면 총 8가지의 data type 이 존재하며 이 글에서 이 8가지 타입에 대해 상기시켜봅시다
2. Primitive Data Types
8가지 타입은 int, byte, short, long, float, double, boolean, char 가 해당되며 Objects가 아닌 raw value 입니다.
이 8가지 타입은 바로 stack memory 에 저장이 됩니다.
int
1.
범위
•
32 bit memory
•
2,147,483,648(-2^31) ~ 2,147,483,647 (2^31-1)
•
java 8 에서 새로운 함수를 사용하여 양수인 정수만 할당할 경우 4,294,967,295(2^32-1) 까지 저장할 수 있다.
2.
default value
•
선언 후 값을 할당하지 않았을 때 0 이 할당된다.
10진수 값을 할당한다
byte
1.
범위
•
stored in 8 bit memory
•
128 ~ 127
2.
default value
•
int와 같이 0 이다.
byte b = 100;
byte empty;
Java
복사
short
int 의 반, byte 의 두배.
1.
범위
•
16 bits of memory
•
32,768(-2^15) ~ 32,767(2^15-1)
2.
default value
•
0
short s = 202_020;
short s;
Java
복사
long
int 의 big brother 라고 불려진다.
1.
범위
•
stored in 64 bits of memory
•
9,223,372,036,854,775,808 (-2^63) ~ 9,223,372,036,854,775,807 (2^63 – 1)
2.
default value
•
0
long l = 1_234_567_890;
long l;
Java
복사
float
소수점을 사용하는 가장 기본적인 타입이다. single-precision 이다. 소수점이 6자리를 넘어가면 추정치가 생겨 정밀함은 떨어진다. 따라서, financial 과 같은 이슈를 다룰 때는 BigDecimal 을 사용해야 한다.
1.
범위
•
stored in 32 bits of memory
•
소수점은 양수와 음수 모두를 대응한다.
•
1.40239846 x 10^-45 ~ 3.40282347 x 10^38
2.
default value
•
0.0 (0이 아니다)
•
마지막에 f 를 붙여야 한다. 그렇지 않으면 java 에서는 error 가 발생한다. 기본이 double 이다.
double
이름에서 처럼 double 이고 이것은 double-precision 이다. (이 개념은 다음 포스팅에서 다룰예정)
1.
범위
•
stored in 64 bits of memory (float 보다 넓다)
•
4.9406564584124654 x 10^-324 to 1.7976931348623157 x 10^308
•
양수, 음수 모두 대응 가능.
2.
default value
•
0.0
•
마지막에 D 를 붙여 표시한다.
double d = 3.13457599923384753929348D;
double d;
Java
복사
boolean
이건 단지 두가지 값만 저장한다
1.
범위
•
stored in a single bit.
•
하지만, java 는 편의상 1 byte 에 값을 채워 사용한다.
2.
default value
•
false
boolean b = true;
boolean b;
Java
복사
char
char 라고 쓰며, character 로 읽는다. unicode-encoded character
알고리즘에서 나의 최애
1.
범위
•
0 ~ 65,535
•
\u0000 ~ \uffff
2.
default value
•
`\u0000\
char c = 'a';
char c = 65;
char c;
Java
복사
여기서 나오는 값들이 char 에서 사용되는 값이다.