💡기본 데이터 타입의 종류
구분 | 데이터 타입 | 바이트 수 | 데이터 범위 | 사용 예시 |
논리 타입 | boolean | 1byte | 0, 1 (false, true) | boolean isTested = true; |
문자 타입 | char | 2byte | 0 ~ 65636 | char grade = 'A'; |
정수 타입 | byte | 1byte | -128 ~ 127 | byte num = 1; |
short | 2byte | -32768 ~ 32767 | short testScore = 100; | |
int | 4byte | -2147483648 ~ 2147483647 (-21억 ~ 21억) |
int sumScore = 12345; | |
long | 8byte | -9223372036854775808 ~ -9223372036854775807 (-922경 ~ 922경) |
long currentTime = 1234567L; | |
실수 타입 | float | 4byte | 1.4E-45 ~ 3.4028235E38 | float scoreAvg = 85.35F |
double | 8byte | 4.9E-324 ~ 1.7976931348623157E308 | double scoreAvg = 94.325612; |
💡논리 타입
boolean
boolean은 '불리언'이라고 읽으며, 기본 타입 중 유일하게 1byte 메모리를 사용한다.
참이면 작업을 수행하고, 거짓이면 다른 작업을 수행한다.
boolean isTested = true;
boolean isTested = false;
boolean isTested = TRUE; //에러 발생
boolean isTested = False; //에러 발생
boolean의 변수 이름은 'is'로 시작하는 것이 일반적이다.
자바는 대소문자를 구분하므로, 잘못 사용하여 에러가 나지 않도록 주의해야 한다.
💡문자 타입
char
char는 '캐릭터'라고 읽으며, 2byte 메모리를 사용한다.
과거에는 1byte만 있어도 언어를 표현할 수 있었으나, 현재는 다양한 언어를 표현하기 위해서 1byte를 추가하여 2byte를 사용하고 있다. 이중 가장 큰 비중을 차지하는 언어 1위는 중국어이며, 2위는 한국어이다.
현재까지 문자 타입의 70%가 사용되었으며, 아직 30%의 언어를 추가할 수 있다.
char grade = 'A';
char grade = "A"; //에러 발생
char는 한 글자만을 값으로 가질 때 선언한다.
char로 선언한 변수를 초기화할 때에는 큰따옴표가 아닌 작은따옴표를 사용해야 한다. 큰따옴표를 사용하는 것은 String 문자열 타입이니 오류가 나지 않도록 주의한다.
문자 코드 값(유니코드)과 그에 대응하는 문자표가 있으며, 자주 사용하는 알파벳이나 한글은 알아두는 것이 좋다.
System.out.println("점수: " + grade);
// 점수: A
+연산자로 문자열과 변수를 연결할 경우, 문자 타입 변수의 값이 문자열로 변경된다는 점에서 주의한다.
💡정수 타입
다양한 데이터 타입을 가지는 이유는 표현하려는 데이터의 성질에 따라 적당한 크기의 타입을 지정하여 메모리와 비용을 절약하기 위해서이다.
예로 들어 내가 저장하려고 하는 데이터가 0부터 100까지를 표현하는 '점수'일 경우, -128 ~ 127 범위의 숫자를 저장할 수 있는 byte를 선언해도 충분하다.
long
long currentTime = 1234567L;
long 타입으로 값을 초기화하려면 리터럴 뒤에 L 또는 l를 추가한다.
💡실수 타입
float
float scoreAvg = 85.35F
float 타입으로 값을 초기화하려면 리터럴 뒤에 F 또는 f를 추가한다.
double
double scoreAvg = 94.325612;
float는 단정도형, double은 배정도형이다. 단정도형 float가 메모리를 덜 사용하고 유효 범위의 숫자가 적으며, 배정도형 double을 사용하여 더 정밀한 실수를 표현하는 것이 가능하다.
단정도형 (Single-precision floating-point)
단정도형은 32비트를 사용한다.
IEEE 754 표준에 따라 부동 소수점을 표현하며, 부호 비트, 지수 부분, 가수 부분으로 구성된다.
23비트를 가수 부분으로 사용하고, 지수 부분은 8비트로 구성되며, 대략 7자리의 유효 숫자를 표현할 수 있다.
배정도형 (Double-precision floating-point)
배정도형은 64비트를 사용하여 실수를 표현합니다
마찬가지로 IEEE 754 표준을 따르며, 부호 비트, 지수 부분, 가수 부분으로 구성됩니다.
52비트를 가수 부분으로 사용하고, 지수 부분은 11비트로 구성되며, 대략 15자리의 유효 숫자를 표현할 수 있다.