EEALL@ONCE

☕ 자바 자료형 - null 본문

언어💻/자바☕

☕ 자바 자료형 - null

올엣원스 2023. 8. 2. 21:47
728x90

null:

Java에서 null객체 참조가 없음을 나타내는 특수 값입니다. 이는 변수가 메모리 위치를 가리키지 않음을 의미합니다. 변수에 'null' 값이 할당되면 메모리의 개체를 참조하지 않음을 나타냅니다.

 

null은 문자열 인스턴스 메소드 사용 불가하다. 왜 일까? 

문자열 인스턴스 메소드란? 
.length(), .equals(), .concat() 같은 것이다. 

🐭 : null은 참조하는 값이 없음으로, 길이를 셀 수도, 비교 할 수도, 연결할 수도 없는 것이다.


추가적으로 또 생각해봐야할 부분은 null의 할당은 컴파일 오류를 내는가 이다! 

String notInitStr;
String nullStr2 = null;

System.out.println(notInitStr); // (1)
System.out.println(nullStr2); //(2)

(1) 초기화되지 않은 변수

(1)번 변수는 선언되었지만 초기화되지 않았습니다. 즉, 할당된 값이 없습니다. Java에서 지역 변수(메서드 또는 블록 내에서 선언된 변수)는 사용하기 전에 초기화해야 합니다. System.out.println(notInitStr);과 같이 초기화되지 않은 지역 변수에 액세스하려고 하면 컴파일 타임 오류가 발생합니다. 

(2)null로 초기화됨

(2)번 변수는 null 값으로 명시적으로 초기화됩니다. System.out.println(nullStr2);을 사용하여 nullStr2를 인쇄하면 값이 할당되었으므로(값이 null임) 컴파일 타임 오류가 발생하지 않습니다. 그러나 런타임에 println 메서드가 nullStr2 값을 인쇄하려고 하면 성공적으로 실행되지만 콘솔에는 "null"이 인쇄됩니다. nullString과 같은 참조형 변수에 대한 값이 없음을 나타내며, 인쇄할 때 문자열 "null"을 표시하기 때문입니다.

 

즉 null도 할당은 할당이기에 컴파일 오류는 안난다. 

728x90