Java의 데이터 타입은 크게 기본 타입과 객체 타입으로 나뉩니다.
Java에서 제공하는 8가지 내장 타입입니다.
| 구분 | 타입 목록 | 비트 크기 |
|---|---|---|
| 정수형 | byte, short, int, long | 8, 16, 32, 64bit |
| 문자형 | char | 16bit |
| 실수형 | float, double | 32, 64bit |
| 논리형 | boolean | 8bit |
API(library)에서 제공하거나 사용자가 정의한 타입
반드시 class 또는 interface로 정의
예시
String: JDK 내부 제공
Person: 사용자 정의 타입
```java
// 사용자 정의 클래스
class Person {
String name;
int age;
// age 값 수정 메서드
void setAge(int age) { // 매개 변수 = 로컬 변수
String tempName; // 로컬 변수
this.age = age; // 멤버 변수에 값 대입
}
}
public class TypeLab {
public static void main(String[] args) {
// Person 인스턴스 생성
Person p1 = new Person();
p1.name = "김자바";
p1.age = 10;
// 메서드로 age 값 수정
p1.setAge(4);
System.out.println(p1.age);
}
}
```
</details>

변수는 선언 위치에 따라 크게 멤버 변수(필드)와 지역 변수로 나뉩니다.
클래스 영역에 선언됩니다.
선언: static 키워드를 붙임
특징:
public으로 선언 시 전역 변수 역할선언: 클래스 영역에 static 없이 선언
특징:
인스턴스 생성 시 할당
인스턴스마다 고유의 값 보유
참조 방식:
클래스명 변수명;변수명 = new 클래스명();예시 코드:
// Tv 클래스 타입의 참조 변수 선언
Tv t;
// Tv 인스턴스 생성
t = new Tv();
생성 시 멤버 변수는 기본값으로 초기화
int: 0boolean: false메서드 내부에 선언됩니다.
| 변수 종류 | 선언 위치 | 생성 시점 |
|---|---|---|
| 클래스 변수 | 클래스 영역 | 클래스 로딩 시 |
| 인스턴스 변수 | 클래스 영역 | 인스턴스 생성 시 |
| 지역 변수 | 메서드, 생성자, 초기화 블럭 내부 | 변수 선언문 실행 시 |
public class Test {
int iv; // 인스턴스 변수
static int cv; // 클래스 변수
public void method() {
int lv; // 지역 변수
}
public void makeSum(int startVal, int endVal) { // 매개 변수
}
}
📚 참고자료