반응형
자바에서 "null" 이랑 공백("blank") 는 종종 다른 맥락에서 사용되는 다른 개념입니다. 각각을 명확히 자바 소스코드를 사용해서 확인하고 차이점을 알아보도록 하겠습니다.
NULL
- Java에서 "null"은 아무것도 참조하지 않거나 값이 없는 것을 나타내는 특수 리터럴입니다.
- 참조 유형의 변수(즉, 개체)에 할당하여 현재 메모리의 어떤 개체도 참조하지 않음을 나타낼 수 있습니다.
- 예를 들어 String 유형의 변수를 선언하고 이 변수에 값을 할당하지 않으면 자동으로 null로 초기화됩니다.
1
2
3
|
String str = null;
|
cs |
- Null은 변수에 아직 의미 있는 값이 할당되지 않았거나 메서드가 유효한 개체를 반환하지 않았음을 나타내는 데 자주 사용됩니다.
공백(Blank)
- "Blank"은 일반적으로 비어 있거나 공백 문자(예: 공백, 탭, 새 줄)만 포함하지만 눈에 보이는 내용이 없는 문자열을 나타냅니다.
- Java에서 문자열이 비어 있거나 공백 문자만 포함된 경우 문자열은 "blank"으로 간주됩니다.
- 문자열이 비어 있는지 확인하려면 요구 사항에 따라 is Empty() 또는 isBlank()와 같은 메서드를 사용할 수 있습니다. Java 11에 도입된 isBlank() 메서드는 문자열에 공백 문자만 포함되어 있으면 문자열을 공백으로 간주합니다.
1
2
3
4
|
String str1 = ""; // empty string
String str2 = " "; // string with whitespace characters
|
cs |
1
2
3
4
5
6
|
// Using isBlank() method to check if a string is blank
if (str.isBlank()) {
// Do something
}
|
cs |
- 빈 문자열은 여전히 메모리를 차지하고 응용 프로그램의 논리에 따라 다르게 처리해야 할 수 있기 때문에 널 문자열과 비교하여 다른 처리가 필요할 수 있습니다.
결론
요약하면, "null"은 값이나 참조가 없는 경우를 나타내며, "blank"는 일반적으로 공백 문자만 포함하거나 비어 있는 문자열을 나타냅니다. Java 애플리케이션에서 null과 blank의 차이를 이해하는 것은 적절한 데이터 처리 및 검증을 위해 매우 중요합니다.
예제 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
public class NullVsBlankExample {
public static void main(String[] args) {
// Example of null string
String nullString = null;
if (nullString == null) {
System.out.println("The string is null.");
} else {
System.out.println("The string is not null.");
}
// Example of blank string
String blankString1 = ""; // empty string
String blankString2 = " "; // string with whitespace characters
if (blankString1.isEmpty()) {
System.out.println("The string is empty.");
} else {
System.out.println("The string is not empty.");
}
if (blankString2.isBlank()) {
System.out.println("The string is blank (contains only whitespace).");
} else {
System.out.println("The string is not blank (contains visible characters).");
}
}
}
|
cs |
The string is null.
The string is empty.
The string is blank (contains only whitespace).
반응형