티스토리 뷰

반응형

1. 기본(원시) 타입

- 정수, 실수, 문자, 논리 리터널을 직접 저장하는 타입

값의 종류 기본 타입 메모리 사용 크기 저장되는 값의 범위
정수 byte 1 byte 8 bit -2⁷~(2⁷-1)(-128~127)
char 2 byte 16 bit 0~2¹⁶ -1 (유니코드: \u0000~\uFFFF, 0~65535)
short 2 byte 16 bit -2¹⁵~(2¹⁵-1)(-32,768~32,767)
int 4 byte 32 bit -2³¹~(2³¹-1)(-2,147,483,648~2,147,483,647)
long 8 byte 64 bit -2⁶³~(2⁶³-1)
실수 float 4 byte 32 bit (+/-)1.4E-45 ~ (+/-)3.4028235E38
double 8 byte 64 bit (+/-)4.9E-324 ~ (+/-)1.7976931348623157E308
논리 boolean 1 byte 8 bit true, false

* 비트(bit) : 메모리에 0과 1을 저장하는 최소 기억 단위

* 바이트(byte) :  8개의 비트


2. 정수 타입

정수 타입 byte char short int long
바이트 수 1 2 2 4 8

* 프로그램이 실행하는 도중에 변수의 값이 변경되어 저장할 수 있는 값의 범위를 초과하면 최소값부터 다시 반복 저장

 

byte타입

색상 정보 및 파일 또는 이미지 등의 이진(바이너리) 데이터를 처리할 때 주로 사용

정수 타입 중 가장 작은 범위의 수를 저장

 

char타입

유니코드 저장(한글자만)

유니코드는 음수가 없기 때문에 char타입의 변수에는 음수값을 저장할 수 없음

작은 따옴표(')로 감싼 문자를 대입하면 해당 문자의 유니코드가 저장

int 타입 변수에 char 타입 변수를 저장하면 유니코드를 알 수 있음

char c = 'A'
int uniCode = c;

char 타입의 변수 초기화 시 공백(유니코드:32) 하나를 포함해야함(빈 문자를 대입하면 컴파일 에러 발생)

 

int타입

정수값을 저장하는 데이터 타입

8진수, 10진수, 16진수 저장 가능

int var1 = 10; 		//10진수
int var2 = 012; 	//8진수 
int var3 = 0xA; 	//16진수

 

long타입

정수값을 저장하는 데이터 타입

수치가 큰 데이터를 다루는 프로그램에서는 long타입이 필수적으로 사용 (은행 및 우주와 관련된 프로그램들)

변수를 초기화 하거나 int 타입의 저장 범위를 넘어서는 큰 정수일 경우

-> 정수값 뒤에 소문자 'l' 또는 대문자 'L'를 붙여 8byte 정수 데이터임을 컴파일러에게 알려주어야 함

     그렇지 않으면 컴파일 에러 (초기화 시에는 에러나지 않음)

long var1 = 10;
long var2 = 20L;
//long var3 = 10000000000000; 컴파일 에러 
ong var4 = 10000000000000L;

3. 실수 타입

실수 타입 float double
바이트 수 4 8

정수 타입과 다른 저장 방식인 부동 소수점(floating-point)방식으로 저장되어 훨씬 큰 범위의 값을 저장할 수 있음

실수 리터럴의 기본 타입을 double로 간주

-> 실수 리터럴을 float 타입 변수에 그냥 저장할 수 없기 때문

     float 타입 변수에 저장하려면 리터럴 뒤에 'f' 또는 'F'를 붙여야 함

double var1 = 3.14;
//float var2 = 3.14; 컴파일 에러(Type mismatch)
float var3 = 3.14F;

10의 지수를 나타내는 E or e를 포함한 저장방법 (실수 타입 변수에 저장할 수 있음)

int var6 = 3000000;		//3000000
double var7 = 3e6;			//3000000.0
float var8 = 3e6F;			//3000000.0
double var9 = 2e-3;			//0.002

double타입이 float타입보다 두배 이상 정밀하게 값을 저장

//정밀도 테스트 
double var4 = 0.1234567890123456789;	//0.12345678901234568
float var5 = 0.1234567890123456789F;	//0.12345679

4. 논리 타입

boolean 타입은 1byte(8bit)로 표현되는 논리값(true/false)을 저장할 수 있는 데이터 타입

두 가지 상태값을 저장할 필요성이 있을 셩우에 사용

상태값에 따라 조건문, 제어문의 실행 흐름을 변경하는데 주로 이용

public class BooleanExample {
	public static void main(String[] args) {
		boolean stop = true;
		
		if(stop) {
			System.out.println("중지합니다.");
		} else {
			System.out.println("시작합니다.");
		}
	}
}

 


도서 '이것이 자바다' 참조

반응형

'JAVA > JAVA' 카테고리의 다른 글

[JAVA] 패키지  (0) 2021.12.02
[JAVA] 데이터 타입 분류  (0) 2021.10.05
[JAVA] 강제 타입 변환  (0) 2021.09.06
댓글