본문 바로가기

STUDY/Java

Java | Primitive Types ( + Overflow/Underflow )

기본타입(Primitive Type)

자바에서는 8가지의 기본 타입을 제공하며 이는 크게 정수형, 실수형, 문자형, 논리형으로 나뉘어집니다.

*정수형 타입: 자바에서의 정수란 소수 부분이 없으며 부호를 가지는 숫자를 말함

 

Primitive Data Types
분류 type size
정수형 byte 1byte(8bits)
short 2byte(16bits)
int 4byte(32bits)
long 8byte(64bits)
실수형 float 4byte(32bits)
double 8byte(34bits)
문자형 char 2byte(16bits)
논리형 boolean 1byte(8bits)

 

 

1. boolean

boolean타입은 true혹은 false 두 가지 값만 가질 수 있으며 1바이트의 크기를 차지합니다. 기본값으로는 false를 가집니다.

 

 

2. byte

byte타입은 정수형 자료형으로 1바이트의 크기가 할당되며, 표현 가능한 범위는 -128~127입니다. 크기가 큰 배열의 메모리를 절약하기 위해 사용된다고 합니다. 기본값은 0입니다.

 

3. short

short타입은 16비트 즉 2바이트의 크기를 가지며 바이트처럼 큰 배열의 메모리를 절약하기 위해 많이 사용된다고 합니다. 표현 가능한 범위는 -32,768 ~ 32,767입니다. 기본값은 역시 byte와 마찬가지로 0입니다.

 

4. int

int 타입은 32비트 즉 4바이트의 크기를 가지며 표현 가능한 범위는 -2,147,483,648 ~ 2,147,483,647(-2³¹ ~ (2³¹-1))입니다.

*java 8 혹은 그 이상의 버전을 사용할 경우 0부터 2³²-1의 범위를 표현할 수 있음

*자바 정수형의 기본형은 int형입니다.

 

5. long

long타입은 64비트 즉 8바이트의 크기를 가지며

표현 가능한 범위는 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807(-263~ (263-1))입니다.

리터럴 타입 접미사 l또는 L을 사용합니다.

*java 8 혹은 그 이상의 버전을 사용할 경우 0부터 264 -1의 범위를 표현할 수 있음

 

How to use the unsigned Integer in Java 8 and Java 9?

In the Oracle "Primitive data types" page, it mentions that Java 8 adds support for unsigned ints and longs: int: By default, the int data type is a 32-bit signed two's complement integer,

stackoverflow.com

 

6. float

float은 4바이트의 크기를 가지며 기본값은 0.0입니다. 리터럴 타입 접미사는 f또는 F를 사용하며 만약 이를 붙이지 않을경우 기본타입인 double형으로 인식하게 됩니다.

 

7. double

double타입은 8바이트의 크기를 가지며 기본값은 역시 0.0입니다. 리터럴 타입 접미사는 d또는 D를 사용합니다.

 

*과거에는 실수를 표현할 때 float형을 많이 사용했지만, 하드웨어의 발달로 인한 메모리 공간의 증가로 현재에는 double형을 가장 많이 사용합니다.따라서 실수형 타입 중 기본이 되는 타입은 double형입니다.

(출처: TCPSchool(http://tcpschool.com/java/java_datatype_basic))

*정확한 값을 나타내야 할 경우 소수타입을 사용하지 않습니다.(ex. 화폐 단위 등)

 

8. char

char형은 16비트 즉 2바이트 크기를 가지며 유니코드를 사용합니다. 표현 가능한 범위는 '\ u0000'(0) ~ '\ uffff'(65535)입니다. 

 

 

출처: https://www.geeksforgeeks.org/data-types-in-java/

 

 

+) Overflow와 Underflow

Overflow는 데이터 타입의 표현 가능 범위를 넘어섰을 경우를, Underflow는 데이터 타입의 표현 가능 범위보다 작을 경우를 말한다.

출처: http://www.soen.kr/book/java/book/332.htm

 

 

Overflow and Underflow in Java | Baeldung

A quick and practical overview of overflow and underflow in Java.

www.baeldung.com

 

 

 

 


참고

 

Data types in Java - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

Java Variables and (Primitive) Data Types

Join our newsletter for the latest updates.

www.programiz.com

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com