☕️[Java] null이란?
1️⃣ null.
- Java에서
null
은 참조형 타입(Reference Type) 변수에 사용되는 특별한 값으로, 해당 변수가 어떤 객체도 가리키지 않고 있음을 나타냅니다.- 즉,
null
은 변수에 객체의 참조가 없음을 의미합니다.
- 즉,
2️⃣ 주요 특징.
-
1. 참조형 타입에만 적용.
-
null
은 기본형 타입(Primitive Type)에는 사용할 수 없으며, 오직 참조형 타입(예:String
,Integer
,List
등) 변수에만 사용할 수 있습니다. - 기본형 타입의 변수는
null
이 아닌, 각 타입의 기본값(예:int
는0
,boolean
은false
)을 가집니다.
-
-
2. 객체의 부재.
-
null
은 변수에 객체가 할당되지 않았거나, 명시적으로 “객체가 없음”을 나타내고자 할 때 사용됩니다.- 예를 들어, 객체가 생성되지 않거나 초기화되지 않은 상태에서 참조형 변수를 선언하면, 해당 변수는 기본적으로
null
값을 가집니다.
- 예를 들어, 객체가 생성되지 않거나 초기화되지 않은 상태에서 참조형 변수를 선언하면, 해당 변수는 기본적으로
-
-
3. NullPointerException.
-
null
참조를 사용하려고 할 때(예:null
객체의 메서드를 호출하거나 필드에 접근할 때), Java는NullPointerException
을 발생시킵니다.- 이는 매우 일반적인 런타임 오류 중 하나입니다.
-
3️⃣ null
의 사용 예.
public class Main {
public static void main(String[] args) {
String str = null; // str은 어떤 객체도 가리키지 않음
if (str == null) {
System.out.println("str은 null입니다.");
}
// NullPointerException을 피하기 위해 null 검사를 수행해야 합니다.
if (str != null) {
System.out.println(str.length()); // str이 null이 아닌 경우에만 실행
}
// 만약 null 검사를 하지 않고 null 참조를 사용하면 NullPointerException 발생
try {
System.out.println(str.length());
} catch (NullPointerException e) {
System.out.println("NullPointerException 발생: " + e.getMessage());
}
}
}
- 위 코드에서
str
변수는null
로 초기화되었습니다. -
str.length()
를 호출하려고 하면,NullPointerException
이 발생합니다.- 이 오류를 피라기 위해서는 항상
null
검사를 수행해야 합니다.
- 이 오류를 피라기 위해서는 항상
4️⃣ null
사용의 주의점.
-
1.
NullPointerException
방지.- 코드를 작성할 때,
null
일 가능성을 항상 염두에 두어야 합니다. -
null
검사를 적절히 수행하지 않으면NullPointerException
이 발생할 수 있습니다.
- 코드를 작성할 때,
-
2. Optional 사용.
- Java 8 이후에는
Optional
클래스를 사용하여null
을 안전하게 처리할 수 있습니다. -
Optional
은 값이 있거나 없음을 명시적으로 나타내어null
참조를 피할 수 있게 해줍니다.
```java
import java.util.Optional;
- Java 8 이후에는
public class Main {
public static void main(String[] args) {
Optional
if (optionalStr.isPresent()) {
System.out.println(optionalStr.get());
} else {
System.out.println("값이 존재하지 않습니다.");
}
} } ```
- 위 코드에서
Optional.ofNullable(null)
을 사용하여null
을 안전하게 처리할 수 있습니다.
5️⃣ 요약.
-
null
은 참조형 타입 변수가 어떤 객체도 참조하지 않고 있음을 나타냅니다. -
null
을 잘못 사용하면NullPointerException
이 발생할 수 있으며, 이를 방지하기 위해서는null
검사를 철저히 수행해야 합니다. - Java 8 이후에는
Optional
클래스를 사용하여null
참조를 보다 안전하게 관리할 수 있습니다.