int quantity = 3;이 한 줄은 세 가지 일을 합니다.
int quantity: "정수 4바이트짜리 공간을 확보하고 quantity라는 이름을 붙여라"= 3: 그 공간에 3을 넣어라quantity라는 이름으로 그 공간을 읽고 쓸 수 있다int가 타입(type, 자료형)입니다. 타입은 두 가지를 결정합니다. 크기(몇 바이트를 쓰는가)와 해석 방법(그 바이트들을 정수로 볼 것인가, 실수로 볼 것인가, 문자로 볼 것인가). 같은 4바이트 01000001 00000000 00000000 00000000이라도 int로 해석하면 65, float로 해석하면 전혀 다른 실수가 됩니다. 타입은 곧 "해석 규칙"입니다.
변수 이름 규칙:
| 규칙 | 가능 | 불가능 |
|---|---|---|
문자, _, $로 시작 |
count, _temp, $price |
1st, -x |
| 숫자는 두 번째 글자부터 | item2 |
2item |
| 예약어 사용 불가 | className |
class, int, for |
| 대소문자 구분 | total과 Total은 다른 변수 |
|
| 관례: camelCase | orderCount, userName |
order_count(자바에선 비관례) |
자바의 타입은 크게 원시 타입(primitive type, 값 자체를 저장) 8개와 참조 타입(reference type, 값이 있는 주소를 저장) 무한개로 나뉩니다. 원시 타입은 딱 8개이고 모두 소문자로 시작합니다.
| 분류 | 타입 | 크기 | 범위 | 기본값 | 리터럴 예시 |
|---|---|---|---|---|---|
| 정수 | byte |
1바이트 | -128 ~ 127 | 0 | (byte) 10 |
| 정수 | short |
2바이트 | -32,768 ~ 32,767 | 0 | (short) 100 |
| 정수 | int |
4바이트 | 약 -21억 ~ 21억 (-2³¹ ~ 2³¹-1) | 0 | 42, 1_000_000, 0xFF |
| 정수 | long |
8바이트 | 약 -922경 ~ 922경 (-2⁶³ ~ 2⁶³-1) | 0L | 42L, 10_000_000_000L |
| 실수 | float |
4바이트 | 약 ±3.4×10³⁸, 유효숫자 7자리 | 0.0f | 3.14f |
| 실수 | double |
8바이트 | 약 ±1.8×10³⁰⁸, 유효숫자 15자리 | 0.0 | 3.14, 1e-9 |
| 문자 | char |
2바이트 | 0 ~ 65,535 (유니코드) | ' |