자바의 자료형 (기본형) (Java Data Type)

Java Data Type

자바의 자료형 (data type)에 대해 작성을 해보려고 한다.

자바에서 자료형 기준은 크게 2가지로 나뉘게 된다.

자바의 자료형 기준

  1. 형태
  2. 길이

이 두 가지를 조건을 가지고 총 8가지의 기본형과 이외의 참조형으로 나뉘게 됩니다 (참조형은 추후 포스팅)


자료형 분류

기본형, 원시형(Primitive Type), 또는 값형(Value Type)이라 부름
여기에는 총 8가지가 존재
- 정수형 (byte, short, int, long)
- 실수형 (float, double)
- 문자형 (char)
- 논리형 (boolean)

정수형

byte : 이름 그대로 1byte(8bit)까지 받습니다 (자바에선 최소 8bit 부터 받을 수 있기 때문에)

  • 즉 2^ 8 = 256개의 수를 표현 할 수 있으며
    • 범위는 -128 ~ 127까지 입니다.

short : 2byte(16bit)까지 받을 수 있습니다
- 2^16 = 65535개의 수를 표현 할 수 있으며
- 범위는 -32768 ~ 32767 입니다.

int : 4yte(32bit) 가장 보편적으로 많이 사용하는 정수형입니다. (이유는 이후 포스트에서 작성)
- 2^32 = 약 42억
- 범위 : 약 -21억 ~ 21억

long : 8byte(64bit) 정수형에서는 가장 큰 값을 처리할 수 있으며
- 2^64 = 922경 * 2 개의 범위를 커버할 수 있으며 과거 강남스타일 조회수와 관련해서 이야기가 나온 적도 있습니다 .
- 간단히 설명하면 유튜브 조회수 표기를 32비트 방식 (int)로 하였으나 21억이 넘어가 오버플로우 현상(추후 포스트 예정)으로 인해 -21억 표기가 되어서 long으로 전환하여 922경까지 조회수를 받아올 수 있다는 내용입니다
int 와 long 관련 유튜브 기사
- 범위 : 약 -922경 ~ 922경


실수형

부호, 가수부, 지수부로 나뉘어 소수점 이하를 지수부로 보내고 정수부분을 가수부로 올림 . (부호는 추후 포스팅 예정 ( 디지털 논리회로 개념 ) )


float : 4byte(32bit) 까지 받을 수 있습니다.

  • 부호에서 1bit 지수에서 8bit , 가수에서 23bit 를 사용합니다.
  • 범위 : 1.4 * 10^(-45) ~ 3.4 * 10^(38)
  • 정밀도 7자리까지이다. (소수점 이하 7자리)
  • 단정도형이라고도 부름

double : 8byte (64bit) 가장 보편적으로 많이 사용하는 실수형입니다. (이유는 이후 포스트 작성)

  • 부호 1bit 지수 11bit 가수 51bit 로 구성되어 있으며
  • 범위 : 4.9 * 10^(-324) ~ 1.8 * 10^(308)
  • 정밀도는 15자리이다 (소수점 이하 15자리)
  • 배정도형이라고도 부름

문자형

char : 2byte(16bit) 까지 받을 수 있습니다.
- 숫자형(정수형)으로 받아 문자를 출력합니다
- ex) 65 -> A
- 양수 범위인 0~65535 까지 표현이 가능합니다 (이로 인해 short 값을 바로 char에 받으면 오류가 발생 할 수 있습니다.)
- 유니코드를 통해 영어가 아닌 언어도 가능합니다
- 단) 한 글자만 출력이 가능합니다 . (문장은 String을 통해 뽑아야 합니다)

논리형

boolean : 1byte (8bit)
오로지 참(true), 거짓(false) 2개밖에 없음
참이 나오면 1이고 거짓일 경우 0임

총정리

자료형 키워드 크기(byte) 기본값 범위
정수형 byte 1byte 0 -128 ~ 127
short 2byte 0 -32768 ~ 32767
int 4byte 0 약 -21억 ~ 21억
long 8byte 0L 약 -922경 ~ 922경
실수형 float 4byte 0F 1.4 * 10^(-45) ~ 3.4 * 10^(38)
double 8byte 0D 4.9 * 10^(-324) ~ 1.8 * 10^(308)
문자형 char 2byte "\u0000" 0 ~ 65535
논리형 boolean 1byte false / ture 0,1

'java' 카테고리의 다른 글

자바의 연산자(Operator)-1  (0) 2024.01.18
[JAVA]자료형 변환  (0) 2024.01.18
자바의 입력(Input) , Scanner , BufferedReader  (0) 2024.01.18
값형의 오류  (1) 2024.01.18
자바의 Print문  (0) 2024.01.18