Java 정수 자료형(Type)
변수 하나 표현할 수 있는 숫자를 정해져 있다.
자바에서 정해진 숫자는 Data Type에 따라서 다르다. 변수 선언 시 표현 범위에 따라 메모리 공간을 할당 한다. 그래서 필요에 맞게 타입을 할당해야 한다.
프로그램에 할당되는 메모리 공간
- 정수형
- byte: 1byte, 2^8, -126 ~ 127
- short: 2byte, 2^16, -32768 ~ 32767
- int: 4byte, 2^32, -2147483648 ~ 2147483647
- long: 8byte, 2^64, -9223372036854775808 ~ 9223372036854775807
- 실수형
- float: 4byte, 2^32, 약 -3.4E38 - 3.4E38, 7가지 정밀도
- double: 8byte, 2^64, 약 -1.7E308 - 1.7E308, 15가지 정밀도
- Boolean형
- boolean: 1byte, [(true, false), (0, 1)]
- 문자형
- char: 1byte, 영문자 하나
- 문자열형
- String: 가변길이, 문자 길이에 따라 동적으로 메모리 할당
리터럴 타입 지정
정수 리터럴은 int를 기본으로 사용한다. 그리고
실수 리터럴은 double를 기본으로 사용한다.
코드 작성 시 리터럴을 지정할 때 long과 float은 문법 오류가 발생되지 않도록 l 또는 f을 붙어줘야한다.
정수 리터럴 long를 사용할 때는 끝부분 L를 붙인다.
실수 리터럴 float은 끝부분 f를 붙인다.
영문l과 숫자1 헷갈리므로 L로 표현한다.
자바 실무에서는?
실무에서 사용 안하는 타입
- byte: 표현길이가 작다. (전체 256)
- byte 타입을 직접 선언하고 계산하는 경우는 없다.
- 그러나 파일을 바이트 단위로 다루는 파일 전송 및 파일 복사에 사용된다.
- short: 마찬가지로 표현길이가 작다 (전체 65536)
- float: 표현길이뿐 아니라 정밀도가 낮다.
- char: 문자 하나를 표현하는 일이 없어졌다. 문자 하나를 표현할 때는 String으로 권장한다.
- 문자 하나를 표현할 때 String c = "A"와 같이 사용한다.
실무에서 사용하는 타입
- int, long: 자바는 기본으로 4byte 계산에 최적화 되어있다. 20억을 넘어갈 경우 long을 사용한다.
- 파일은 byte를 사용한다.
- double: 실수형은 double 기본타입으로 사용한다.
- boolean: true, false 조건문에서 자주 사용한다.
- String: 문자를 다룰 때는 String을 권장한다.
부록1 자바 코드 구현
각 자료형을 자바로 구현하도록 하자.
public class Hello1 {
public static void main(String[] args) {
// 정수 자료형
byte b = 127; // -128 ~ 127
short s = 32767; // -32,768 ~ 32,767
int i = 2147483647; // -2,147,483,648 ~ 2,147,486,647 (20억)
long l = 9223372036854775807L;
// -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (922경)
// 실수 자료형
float f = 3.4E38f; // 약 -3.4E38 - 3.4E38, 자릿수 7 정밀도
double d = 1.7E308; // 약 -1.7E308 - 1.7E308, 자릿수 15 정밀도
System.out.println("정수 자료형");
System.out.println(b);
System.out.println(s);
System.out.println(i);
System.out.println(l);
System.out.println("실수 자료형");
System.out.println(f);
System.out.println(d);
}
}
다음과 같이 출력한다.
Console Output:정수 자료형
127
32767
2147483647
9223372036854775807
실수 자료형
3.4E38
1.7E308