JAVA는 다른언어와 비교적 제한적인 데이터 타입을 가지고 있다. 변수를 선언하면 선언된 변수에 따라 값의 허용범위가 다르고 선언한 후 타입 변경이 안되기 때문에 변수 선언 전 어떤 타입을 사용할지가 중요하다.
자바에서 제공되는 기본 타입은 저장되는 값에 따라 정수 타입, 실수 타입, 논리 타입 3가지로 분류되어
- 정수 타입 - byte, char, short, int, long
- 실수 타입 - float, double
- 논리 타입 - boolean
총 8가지 기본 타입을 가지고 있다.
정수타입
데이터 타입마다의 메모리 사용 크기와 저장되는 값의 범위가 정해져있기 때문에 외울 필요는 없겠지만 유의해서 사용해야되기 때문에 알고 있는 것이 좋다.
타입 | 메모리 사용크기 | 저장되는 값의 허용 범위 | ||
byte | 1byte | 8bit | -27 ~ (27-1) | -128 ~ 127 |
short | 2byte | 16bit | -215 ~ (215-1) | -32,768 ~ 32,767 |
char | 2byte | 16bit | 0 ~ (216-1) | 0 ~ 65535(유니코드) |
int | 4byte | 32bit | -231 ~ (231-1) | -2,147,483,648 ~ 2,147,483,647 |
long | 8byte | 64bit | -263 ~ (263-1) | -9,223,372,036,854,775,808L ~ 9,223,372,036,854,775,807L |
byte < short < int < long
+ 정수 리터럴
- 2진수 : 0b 또는 0B로 시작하고 0과 1로 구성됨. ex)0b1011 → 11
- 8진수 : 0으로 시작하고 0~7 숫자로 구성됨. ex) 0206 → 134
- 16진수 : 0x 또는 0X로 시작하고 0~9 숫자와 A, B, C, D, E, F 또는 a, b, c, d, e, f로 구성됨. ex)0xB3 → 179
♧ 리터럴(literal) : 소스 코드에서 프로그래머에 의해 직접 입력된 값
+ 유니코드
오류 1
byte a = 5;
byte b = 8;
byte c = a + b;
byte, short는 정수형이긴하지만 계산상 결과값을 받을 순 없다
오류 2
int z1 = 2000000000;
int z2 = 2000000000;
int z3 = z1+z2;
int 허용 범위를 넘어섬. 컴파일, 런타임에서 에러가 나지 않는다 결과값이 이상하게 출력됨
실수 타입
타입 | 메모리 사용 크기 | 저장되는 값의 어용 범위 | 정밀도(소수점 이하 자리) | |
float | 4byte | 32bit | (1.4*10-45)f ~ (3.4*1038<s/up>)f | 7자리 |
double | 8byte | 64bit | (4.9*10-324) ~ (1.8*10308) | 15자리 |
+ 실수 리터럴
- 소수점이 있는 숫자 리터럴은 10진수 실수로 인식함. ex) 0.25, -3.14
- 알파벳 소문자 e 또는 대문자 E가 포함되어 있는 숫자 리터럴은 지수와 기수로 표현된 소수점이 있는 10진수 실수로 인식함. ex) 5e2 → 5.0 * 102 = 500.0
논리 타입
trun or false
char 타입
하나의 문자를 작은 따옴표(')로 감싼 것으로 문자 리터럴, 유니코드로 변환되어 저장됨
String 타입
하나의 문자 또는 여러개의 문자를 큰 따옴표(")로 감싼 것으로 문자열
String str = new String();
String이 class라 원래는 상단과 같이 주어주고 사용해야 하나 하단과 같이 써주어도 사용할 수 있도록 되어있다.
String str = "가나다라마바사";
'JAVA' 카테고리의 다른 글
[ JAVA ] 2차원 배열 - 배열의 배열 (0) | 2021.05.24 |
---|---|
[ JAVA ] Call by Value vs Call by Reference (0) | 2021.05.20 |
[ JAVA ] SWITCH CASE - 조건문 - 조건이 명확할 때 (0) | 2021.05.20 |
[ JAVA ] 반복문 (0) | 2021.05.20 |
[ JAVA ] 타입 변환 (0) | 2021.05.19 |