이번 시간에는 Java에서 사용되는 원시 타입에 대해 살펴보도록 하겠다. Java는 아래와 같은 총 8개의 원시 타입을 제공한다.
원시 타입 (primitive type)
부울과 문자
boolean - true 혹은 false를 값으로 가짐
char - 유니코드 한 글자를 저장 (16bit)
숫자
정수
byte - 8bit 크기 -128~127
short - 16bit 크기 -32768~32767
int - 32bit 크기 -232 ~ (232 - 1)
long - 64bit 크기
부동소수점 (실수)
float - 32bit
double - 64bit
변수는 앞서 설명한 것처럼 값을 담아두기 위한 그릇이다. 그 그릇에 담는 값을 Java에서는 리터럴 혹은 상수라고 한다. 여기서는 Java Tutorial의 표기에 따라 리터럴(literal)이라고 부르겠다. 각 타입에 따른 리터럴 표현 방법과 변수의 선언 방법은 다음과 같다.
package exam.fundamental;
public class Variables {
public static void main(String[] args) {
boolean b; // 논리(boolean) 타입의 변수 선언
char c; // 문자 타입의 변수 선언
byte bt; // Byte 타입의 변수 선언
short sd; // Short 타입의 변수 선언
int i; // 정수 타입의 변수 선언
long ld; // Long 타입의 변수 선언
float f; // 실수 타입의 변수 선언
double d; // Double 타입의 변수 선언
b = true; // 논리 타입의 리터럴 할당
c = 'A'; // 문자 타입의 리터럴 할당
c = 65; // 정수형 타입의 리터럴 할당. 아스키 코드값으로 저장되어 문자로 표현
c = '\u0041'; // Unicode escape 표현식 16진수로 표시
System.out.println("c : " + c);
bt = 127; // byte 타입의 리터럴 할당
sd = -32768; // short 타입의 리터럴 할당
i = 2147483647; // int 타입의 리터럴 할당
i = 0xFF; // 16진수 리터럴 할당 '0x'로 시작
i = 0376; // 8진수 리터럴 할당 '0'으로 시작
ld = -9223372036854775808L; // long 타입의 리터럴 할당. 'L', 'l'을 붙임.
f = 3.1415F; // float 타입의 리터럴 할당. 'F', 'f'를 붙임.
d = 3.1415; // double 타입의 리터럴 할당. 디폴트 타입.
}
}
디폴트 값
클래스의 필드로 선언된 변수의 경우 인스턴스가 될 때 자동으로 초기값이 부여된다.
| Data Type | Default Value (for fields) |
| byte | 0 |
| short | 0 |
| int | 0 |
| long | 0L |
| float | 0.0f |
| double | 0.0d |
| char | '\u0000' |
| String (or any object) | null |
| boolean | false |
public class DefaultValues {
boolean b; // 논리(boolean) 타입의 변수 선언
char c; // 문자 타입의 변수 선언
byte bt; // Byte 타입의 변수 선언
short sd; // Short 타입의 변수 선언
int i; // 정수 타입의 변수 선언
long ld; // Long 타입의 변수 선언
float f; // 실수 타입의 변수 선언
double d; // Double 타입의 변수 선언
public static void main(String[] args) {
DefaultValues dv = new DefaultValues();
System.out.println("boolean : " + dv.b);
System.out.println("char : " + dv.c);
System.out.println("byte : " + dv.bt);
System.out.println("short : " + dv.sd);
System.out.println("int : " + dv.i);
System.out.println("long : " + dv.ld);
System.out.println("float : " + dv.f);
System.out.println("double : " + dv.d);
System.out.println("String : " + new String());
}
}
변수에 값을 넣을 경우 자동확장(promotion)이 되어 작은 유형의 값을 큰 유형의 변수에 넣을 수 있다.
Posted by 정샘
