자바의 타입(자료형)은 기본 자료형(Primitive data type)
과 참조 자료형(Reference data type)
으로 나뉜다. 참조 자료형은 내가 마음대로 만들 수 있지만, 기본 자료형은 정해져 있다.
자바에서는 new
를 사용해서 초기화하는 것을 참조 자료형, 그렇지 않고 바로 초기화가 가능한 것을 기본 자료형이라고 한다.
그러나 참조 자료형 중 문자열을 다루는 String
은 new를 사용해서 객체를 생성하지 않아도 되는 유일한 타입이다.
String bookName1 = "God of Java";
String bookName2 = new String("God of Java");
기본 자료형은 8개이다. 이를 나열하면 다음과 같다.
각 정수형의 타입 범위
타입 | 최소 | 최대 |
byte | -128 | 127 |
short | -32,768 | 32,767 |
int | -2,147,483,648 | 2,147,483,647 |
long | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
char | 0 ('\u0000') | 65,535('\uffff') |
각 정수형의 2진수로 표현한 타입 범위
타입 | 최소 | 최대 |
byte | -2^7 | 2^7 - 1 |
short | -2^15 | 2^15 - 1 |
int | -2^31 | 2^31 - 1 |
long | -2^63 | 2^63 - 1 |
char | 0 | 2^16 - 1 |
float과 double은 모두 소수점 값을 처리하기 위해서 사용된다. 그리고, float은 32비트이며, double은 64비트로 표현된다. 그런데, 이 두가지의의 소수점은 간단한 계산에서는 사용해도 무방하지만 돈 계산과 같이 중요한 부분에서는 이 타입들을 사용해서는 안된다. 왜냐하면, float와 double은 32비트와 64비트로 제공할 수 있는 범위를 넘어서면 그 값의 정확성을 보장하지 못하기 때문이다. 그래서 Java에서는 돈 계산과 같이 정확한 계산이 요구될 때에는 java.math.BigDecimal
이라는 클래스를 사용하면 된다.
위의 기본 자료형 8개를 제외한 나머지 타입은 모두 참조 자료형(Reference type)이다. 참조 자료형이 사용할 수 있는 유일한 연산자는 값을 할당하기 위한 등호(=)
뿐이다.
참조 자료형은 new를 사용하여 객체를 사용한다고 했는데, new 뒤에 나오는 것이 바로 생성자다. 클래스를 만들면 보통 인스턴스 변수와 클래스 변수, 생성자, 메소드를 만들어야 한다.
참고