기본 타입(Primitive)
정수: byte, char, short, int, long
실수: float, double
논리: boolean
진수 표기
- 2진수: 0b 또는 0B로 시작하고 0과 1로 작성
int x = 0b1011; // 11
- 8진수: 0으로 시작하고 0~7숫자로 작성
int x = 013; // 11
- 10진수: 소수점 없는 0~9 숫자로 작성
int x = 11; // 11
- 16진수: 0x 또는 0X로 시작하고 0~9,A~F,a~f로 작성
- int x = 0xB3; // 179
정수 타입
- btye
1byte, -2^7~(2^7-1), -128 ~ 127
- short
2byte, -2^15~(2^15-1), -32,768 ~ 32,767
- char
2byte, 0~(2^16-1), 0 ~ 65535(유니코드)
- int
4byte, -2^31~(2^31-1), -2,147,483,648 ~ 2,147,483,647
- long
8byte, -2^63~(2^63-1), -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
실수 타입
- float
4byte, 1.4*10^-14 ~ 3.4*10^38, 유효소수이하자리 7자리
부호1bit + 지수8bit + 가수23bit = 32bit
- double
8byte, 4.9*10^-324 ~ 1.8*10^308, 유효소수이하자리 15자리
부호1bit + 지수11bit + 가수52bit = 64bit
- float타입과 double타입은 부동 소수점(floating-point)방식으로 메모리에 저장한다.
- +m*10^n // 부호(+-) + 가수(m) + 지수(n)
- 컴파일러는 실수 리터럴을 기본적으로 double 타입으로 해석한다.
float 타입에 대입하고 싶다면 리터럴 뒤에 'f', 'F'를 붙여 컴파일러에게 float 타입임을 알려줘야 한다.
- double는 float보다 2배의 정밀도를 갖는다는 의미의 이름이다.
문자 타입
하나의 문자를 작은따옴표(')로 감싼 것을 문자 리터럴이라고 한다.
문자 리터럴은 유니코드로 변환되어 저장되는데,
유니코드는 세계 각국의 문자를 0~65535 숫자로 매핑한 국제 표준 규약이다.
char var1 = 'A'; //'A'가 매핑되는 숫자: 65로 대입
char var2 = 65; 와 동일함.
char var3 = '가'; //'가'와 매핑되는 숫자: 44032로 대입
char var4 = 44032; 와 동일함.
문자열 타입
작은따옴표(')로 감싼 한 개의 문자는 char 타입이지만,
큰따옴표(")로 감싼 여러 개의 무자들은 유니코드로 변환되지 않는다.
큰따옴표로 감싼 문자들은 문자열로 변수에 저장하려면 String 타입을 사용해야 한다.
String var1 = "A";
String var2 = "홍길동";
- String 타입은 자바 primitive 타입에 속하지 않는 참조 타입이다.