각 타입의 메모리 크기는 다음과 같다.
메모리 크기에 따라 표현할 수 있는 값의 범위가 다르며, 각 타입의 최댓값, 최솟값은 Wrapper class의 MIN_VALUE, MAX_VALUE field로 접근하면 된다.
System.out.println(Integer.MIN_VALUE); // -2^(31)
해당 타입의 최댓값(최솟값)보다 큰(작은) 수를 저장할 때 발생하는 현상을 말한다.
overflow나 underflow가 발생하면 의도치 않은 값이 저장된다.
public class Datatype04 {
public static void main(String[] args) {
byte num1 = 127;
byte num2 = -128;
num1++; // 127 + 1
num2--; // -128 - 1
System.out.println(num1); // -128
System.out.println(num2); // 127
}
}
float와 double이 있으며, 주요 특징은 다음과 같다.
char가 있으며, unicode의 모든 문자를 표현하기 위해 2 byte를 할당받는다.
boolean이 해당되며, true와 false 중 하나의 값을 갖는다. 메모리는 1 byte를 할당받는다.
그 자체로 값을 의미한다.
타입에 따라 다음과 같이 구분된다.
long, float, double은 접미사를 가진다.
http://tcpschool.com/java/java_datatype_basic
http://tcpschool.com/java/java_datatype_constant