- 자료형이 필요한 이유: 메모리 공간의 적절한 사용을 위해 변수를 선언 할 때 자료형을 통해 사용할 메모리 크기와 타입을 구분하게 해준다.
💡기본자료형
| 자료형 | 타입 | 크기 | 표현 범위 |
|---|
| 정수형 | byte | 1byte | -127 ~ +128 |
| 정수형 | short | 2byte | -32,768 ~ + 32,767 |
| 정수형 | int | 4byte | -2,147,483,648 ~ +2,147,483,647 |
| 정수형 | long | 8byte | -9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807 |
| 실수형 | float | 4byte | -3.4E38 ~ +3.4E38 |
| 실수형 | double | 8byte | -1.7E308 ~ +1.7E308 |
| 문자형 | char | 2byte(unicode) | 0 ~ +65,535 |
| 논리형 | boolean | 1byte | true, false |
- 자료형들의 최소범위는
자료형.MIN_VALUE, 최대범위는 자료형.MAX_VALUE를 통해 알 수 있다. 또는 sizeOf(변수)로도 알 수 있다.
관련 추가내용
- byte
byte a = 'd'를 선언 및 초기화 한 후 출력하면 d가 아닌 100이 출력된다. (아스키코드의 값으로 출력)
- char
- char는 1byte인 줄 알고 있었으나 2byte이다. C언어와 같은 프로그래밍 언어는 char형은 아스키코드를 사용하여 1byte이나 java에서 char는 유니코드를 사용하여 2byte이다.
- char와 short
- char형과 short형은 둘 다 2byte의 크기를 가지고 있다. 하지만 위 표에서 표현 범위를 보면 short형은 -부터 char형은 0부터 시작되는 것을 알 수 있다.
- char형은 문자의 코드를 저장하기 때문에 음수를 필요로 하지 않기 때문에 0부터 시작하지만 short형은 정수를 표현해야 하기 때문에 - 부터 시작한다.
- char와 String
- 해당 게시물을 작성하기 전 String도 기본 자료형일 것이라고 착각을 하고 있었다. 하지만 String은 자료형이 아닌 class이다. 따라서 char는 소문자로 작성하지만 String은 클래스이기 때문에 첫 번째는 대문자로 작성한다.
💡참조자료형
- 기본자료형을 제외한 모든 것
- java의 객체를 가르킬 수 있는 자료형
- String
- 배열
- 동일한 자료형의 데이터를 연속된 공간의 저장하기 위한 자료구조이다.
- 만약 열명의 학생의 점수를 입력 시 변수를 10개를 선언하지 않고 한 개의 배열을 선언하여 10명 학생의 점수를 담을 수 있다.
배열변수.length를 통해 배열의 길이를 알 수 있다. (+ 참고로 String의 길이는 String변수.length()로 괄호가 추가된다.)
- 배열의 index는 0부터 시작이므로 끝 값의 인덱스는
배열변수.length -1이다.
배열의 선언 및 초기화
int[] arr = new int[5];
String[] arr = new String[5];
int[] arr = new int[5] {1, 2, 3, 4 ,5};
int[] arr = {1, 2, 3, 4, 5};