자바에는 총 8가지 기본형 데이터 타입이 있으며, 메모리에 직접 값을 저장합니다.
타입 |
크기 |
기본값 |
설명 |
---|---|---|---|
byte |
1바이트 |
0 |
정수. -128 ~ 127 |
short |
2바이트 |
0 |
정수. -32,768 ~ 32,767 |
int |
4바이트 |
0 |
정수. 기본 정수형 타입 |
long |
8바이트 |
0L |
큰 범위의 정수. 접미사 L 사용 |
float |
4바이트 |
0.0f |
실수. 소수점 포함, f 접미사 |
double |
8바이트 |
0.0d |
실수. 기본 실수형 타입 |
char |
2바이트 |
‘\u0000’ |
문자 1개. 유니코드 문자 |
boolean |
1비트 |
false |
참(true) 또는 거짓(false) |
int age = 30;
double pi = 3.14;
char grade = 'A';
boolean isAdult = true;
참조형은 **객체(인스턴스)**를 참조하는 타입으로, 메모리에는 **값이 아니라 객체의 주소(reference)**를 저장합니다.
클래스 (String, 사용자 정의 클래스 등)
배열 (int[], String[] 등)
열거형 (enum)
인터페이스
String name = "홍길동";
int[] scores = {90, 80, 70};
Student s = new Student(); // 사용자 정의 클래스
구분 |
기본형 |
참조형 |
---|---|---|
저장 내용 |
실제 값 |
객체 주소 (Reference) |
메모리 위치 |
스택(Stack) |
힙(Heap) |
null 가능 여부 |
불가능 |
가능 |
사용 목적 |
간단한 데이터 저장 |
복잡한 데이터나 객체 조작 |
자바에서 문자열은 참조형 타입이며 String 클래스로 처리됩니다. 불변(immutable) 객체로, 한 번 생성하면 내용을 바꿀 수 없습니다.
String greeting = "Hello, Java";
문자열은 여러 메서드를 활용하여 조작할 수 있습니다.
자바 10부터는 var 키워드를 사용해 컴파일러가 타입을 추론할 수 있습니다.
var number = 10; // int
var message = "text"; // String
단, 가독성과 명확성을 위해 일반적으로는 명시적 타입 선언을 권장합니다.
정수 계열: byte < short < int < long
실수 계열: float < double
문자형은 유니코드 숫자로 저장되며, 정수형과 호환 가능 (char → int 형변환 가능)
int number = 100;
double price = 9.99;
char grade = 'B';
boolean isValid = true;
String title = "Java Programming";
float 값을 선언할 때는 반드시 접미사 f를 붙여야 합니다.
long 값에는 접미사 L을 붙이는 것이 안전합니다.
boolean은 true 또는 false만 사용 가능하며, 0이나 1은 사용할 수 없습니다.
char는 작은따옴표(’’)를 사용하고, 하나의 문자만 담을 수 있습니다.
String은 대문자로 시작하는 참조형이며, " " (큰따옴표)로 문자열을 감쌉니다.