참고: 김영한의 실전 자바 - 기본편 강의
기본형과 참조형
변수의 데이터 타입은 크게 기본형과 참조형으로 구분할 수 있다.
- 기본형 (Primitive Type)
- `int`, `long`, `double`, `boolean` 처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입을 기본형이라 한다.
- 기본형은 숫자 `10`, `20`과 같이 실제 사용하는 값을 변수에 담을 수 있고, 해당 값을 바로 사용할 수 있다.
- 참조형 (Reference Type)
- `Student student1`, `int[] students`, `String`과 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입을 참조형이라 한다. 참조형은 객체 또는 배열에 사용된다.
- 참조형은 실제 사용하는 값을 변수에 담는 것이 아니라, 실제 객체의 위치(참조, 주소)를 저장한다. 참조형에는 객체와 배열이 있다.
- 객체는 `.`(dot)을 통해서 메모리 상에 생성된 객체를 찾아가야 사용할 수 있다.
- 배열은 `[]`를 통해서 메모리 상에 생성된 배열을 찾아가야 사용할 수 있다.
- `String`은 클래스이므로 참조형이다. 하지만 기본형처럼 문자 값을 바로 대입할 수 있다. 문자는 매우 자주 다루기 때문에 자바에서 특별하게 편의 기능을 제공한다.
변수와 초기화
변수의 종류
- 멤버 변수(=필드)
- 클래스에 선언
- 초기화를 하지 않으면 default 값을 지니게 된다. (ex. int → 0, boolean → false, 참조형 → null)
- 지역 변수
- 메서드에 선언
- 메서드의 매개변수도 지역 변수의 한 종류이다.
- 지역변수는 사용하기 전에 초기화를 직접 해줘야 한다.
Null
null은 값이 존재하지 않는, 없다는 뜻이다.
null은 참조형에만 쓸 수 있다.
NullPointerException
`NullPointerException`은 이름 그대로 `null`을 가리켜서 발생하는 예외라는 뜻이다. 즉, 주소가 없는 곳을 찾아갈 때 발생하는 예외이다.
객체를 참조할 때는 `.`(dot)을 사용한다. 이렇게 하면 참조값을 사용해서 해당 객체를 찾아갈 수 있는데, 참조값이 null이면 찾아갈 수 있는 객체(인스턴스)가 없기 때문에, 이처럼 `null`에 `.`(dot)을 찍었을 때 발생한다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 메서드 오버로딩(Overloading) (0) | 2024.08.20 |
---|---|
[Java] 배열 생성 방법 (0) | 2024.08.16 |
[Java] 형변환과 오버플로우, 계산시 형변환 (0) | 2024.08.13 |
[Java] 스코프(Scope) (0) | 2024.08.13 |
[Java] 문자열 비교 (equals) (0) | 2024.08.09 |