Reserved Words
는 사용할 수 없다. int a = 0; // 변수 a를 선언 후, 0으로 초기화
int b = 5; // 변수 b를 선언 후, 5로 초기화
클래스 변수
, 인스턴스 변수
, 지역변수
가 있다. 지역 변수
는 자동으로 초기화 되지 않으므로 읽기 전에 꼭 초기화 해야한다.자바에서 데이터 타입은 크게 두 가지로 나눌 수 있다.
byte
, short
, int
, long
, double
, float
, char
, boolean
크게 8가지가 있다.Wrapper
클래스를 활용해야 한다)Primitive type
을 제외한 나머지 타입들이 전부 Reference Type
이다.
메모리 공간에 객체가 있는 주소를 저장한다. (주소를 참조해서 값을 가져오기 때문에 참조 타입)
실제 값은 heap(힙)에 저장하고, 그 주소값을 갖는 변수를 stack(스택)에 저장한다.
빈 값을 의미하는 null 이 존재한다. (아무런 값을 참조하지 않는다는 게 빈 값을 가지고 있다는 뜻이 아니기 때문에 NullPointerException 의 원인이 될 수 있다.)
※ NullPointerException : 실제 값이 아닌 null을 가지고 있는 객체/변수를 호출할 때 발생하는 예외
Primitive type 자료형들을 표로 나타내면 다음과 같다.
자료형 | 키워드 | 기본값 | 크기 | 표현 가능 범위 | 유효 자릿수 |
---|---|---|---|---|---|
정수형 | byte | 0 | 1바이트 | -128 ~ 127 | |
정수형 | short | 0 | 2바이트 | -215 ~ (215 - 1) | |
정수형 | int | 0 | 4바이트 | -231 ~ (231 - 1) | |
정수형 | long | 0L | 8바이트 | -263 ~ (263 - 1) | |
실수형 | float | 0.0F | 4바이트 | (3.4 X 10-38) ~ (3.4 X 1038) | 소수 부분 6자리까지 |
실수형 | double | 0.0 | 8바이트 | (1.7 X 10-308) ~ (1.7 X 10308) | 소수 부분 15자리까지 |
문자형 | char | '\u0000' | 2바이트 | 유니코드 문자 | |
논리형 | boolean | false | 1바이트 | true, false |
정수 자료형
byte
, short
, int
, long
int
, long
을 자주 쓴다. long
에 값을 대입할 때는 숫자 값이 int
자료형의 최대값을 넘길 경우에 값 뒤에 L을 써 주어야한다. 접미사 L을 적지 않으면 컴파일 에러가 발생한다. 접미사는 소문자로 적어도 된다. long l = 987654321987654321L;
실수 자료형
double
, float
double
을 쓴다.float
에도 long
처럼 접미사 F를 쓴다. float F = 3.1415926535821F;
char
문자 한 개만 표현 가능하다.
''
으로 감싸주어야한다. ""
를 사용하면 에러가 난다. (큰따옴표는 문자열에 사용한다) char c1 = 'a'; // 문자로 표현
char c2 = 97; // 아스키 코드로 표현
char c3 = '/u0061' // 유니코드로 표현
boolean
Reference type
java.lang.Object
를 상속받으면reference type
이 된다.
종류는 아래와 같다.
Array(배열 타입), Enumeration(열거 타입), Class(클래스 타입), Interface(인터페이스 타입)
주소값만 저장하는 공간이라 크기는 4바이트로 동일하다.
키워드 | 기본값 | 크기 | 예시 | 유효 자릿수 |
---|---|---|---|---|
Array(배열 타입) | null | 4바이트 | int[] arr = new int[5]; | |
Enumeration(열거 타입) | null | 4바이트 | ||
Class(클래스 타입) | null | 4바이트 | String name = new String("java"); | |
Interface(인터페이스 타입) | null | 4바이트 |
참고
자바의 정석-변수란? 변수의 선언과 저장
[Java] 13.Java의 자료형 (Primitive type & Reference type)
자바의 데이터 타입(Primitive type, Reference type)