Type || Bits || Range of Values
byte 8bits -2^7 ~ 2^7-1 (-128 ~ 127)
short 16bits -2^15 ~ 2^15-1 (-32768 ~ 32767)
int 32bits -2^31 ~ 2^31-1 (-2147483648 ~ 2147483647)
long 64bits -2^63 ~ 2^63-1 (-9223372036854775808 ~ 9223372036854775807)
float 32bits *single-precision 32-bit IEEE 754 floating point
double 64bits *double-precision 64-bit IEEE 754 floating point
char 16bits \u0000 ~ \uffff (0 ~ 2^15-1)
boolean *VMD true, false
type || 기본 값
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char '\u0000'
boolean false
숫자를 담는 자료형은
정수형 byte, short, int, long, 그리고 소수형 float과 double
자바에서는 int를 정수형의 메인으로 사용
즉, 정수를 입력하면 기본적으로 int로 간주
byte a = 127;
하지만 이렇게 127을 byte 변수에 지정해주면,
127은 byte의 범위 내에 있기 때문에
컴파일러가 알아서 127을 byte로 바꿔준다.
long x = 12345678910; // 오류 (정수 범위를 벗어남)
만약 int의 범위에서 벗어나는 값을 써주면 오류가 나온다.
고치기 위해서는 L을 붙여주면 된다.
long을 표현하기위한 리터럴은 뒤에l(소문자 엘)또는 L(대문자 엘)을 붙여준다.
소문자 l(엘)의 경우 숫자 1(일)과 혼동될 수 있으니 대문자 L(엘)을 적는 것이 권장사항!!
long x = 12345678910l; // 소문자 l은 1과 헷갈릴 수 있음
long x = 12345678910L; // 권장사항
자바에는 두 가지 소수형 자료형
float과 double
float과 double은 둘다 소수형을 담지만
정밀도(Precision) 혹은 정확도에 차이가 있다.double이 더 정밀하게 값을 보관할 수 있다.
이러한 이유로 자바에서는 double을 소수형의 기본으로 사용한다.
정수를 입력하면 기본적으로 int로 인식되듯이, 소수를 입력하면 기본적으로 double로 인식되는 것이다.만약 float를 쓰고 싶으면 소수를 쓰고, 뒤에 f를 붙여주면 된다.
float f = 3.14f;
char a1 = 'a'; char a2 = 97; char a3 = '\u0061'; char a4 = '가';
글자(Character) 하나를 담는 자료형 char
char은 딱 글자 하나만 넣어줄 수 있고, 작은 따옴표로 글자를 둘러싸야 한다.
글자 여러 개를 담고 싶으면 큰 따옴표로 둘러싸고 아래에서 배울 String이라는 자료형을 사용하면 된다.
a1에는 글자 'a'를 담았고,
a2에는 글자 'a'에 해당하는 ASCII 값인 97을 담았다.
사실 a1과 a2는 같은 셈이다.a3는 유니코드 값
'가'도 유니코드 중 하나라 자바의 char에 담을 수 있다.
boolean myBoolean = true; myBoolean = false;
참(true), 거짓(false)을 담는 boolean
값으로는 true와 false가 가능
String은 기본 자료형이 아니라 클래스
?? 클래스를 변수의 형으로 쓰고 변수를 선언하면
그 변수는 클래스의 인스턴스를 담을 수 있다.
먼저 String은 큰 따옴표(")로 둘러싸인 글자들을 적어 만들 수 있다.
String a = "Hello, I'm "; String b = "."; System.out.print(a); System.out.print(25); System.out.println(b);
Hello, I'm 25.