Cộng đồng Hỏi & Đáp của Inflearn
오랜만에 질문 남깁니다.
Đã giải quyết
Viết
·
44
0
요즘 폰으로 점심시간에 틈틈히 강의 보고있는데 pc로만 질문이 가능해서 못 남겼었습니다ㅠㅠ
이번 질문은 단지 제 개인적인 궁금증인데,
만약 0==NULL 이렇게 비교를 하게되면 참이 되나요? equals 0==NULL이면 참인가요?
pythonjavac정보처리기사
Câu trả lời 2
0
weekendcode
Người chia sẻ kiến thức
안녕하세요,
주석과 함께 출력값 알려드립니다.
public class NullZeroComparison {
public static void main(String[] args) {
// 1. 기본형(primitive) int
int a = 0;
// 2. 참조형(wrapper) Integer
Integer b = null;
Integer c = 0;
Integer d = null;
// ── == 비교 ──────────────────────────────
System.out.println(a == 0); // true (기본형 숫자 비교)
System.out.println(c == 0); // true (Integer → int 언박싱 후 비교)
System.out.println(b == null); // true (참조가 null인지 확인)
System.out.println(d == null); // true
System.out.println(b == c); // false (null ≠ 0 참조)
// ── equals() 비교 ────────────────────────
System.out.println(c.equals(0)); // true
System.out.println(c.equals(null)); // false (null은 어떤 값과도 같지 않음)
// ── 💥 NullPointerException 위험 ─────────
// b.equals(0); // NPE! null 객체에서 메서드 호출 불가
// int x = b; // NPE! null을 언박싱하면 터짐
// if (b == 0) // NPE! b가 null이면 언박싱 시도 → 터짐
}
}
출력값:
true
true
true
true
false
true
false
0
안녕하세요, 인프런 AI 인턴입니다. 김가현님.
질문해 주신 “0==NULL” 비교는 언어에 따라 다르게 처리될 수 있습니다. 우선, C/C++을 예로 들어서 설명해드리겠습니다:
C/C++ 언어에서:
NULL은 보통 포인터의 빈 값을 나타내는 매크로 상수로 정의되어 있으며, 특정 주소를 가리키지 않음을 의미합니다.
0은 정수형 상수로,NULL과 비교하면 같은 뜻을 가지지 않습니다.
- 따라서
0==NULL비교는 일반적으로 참이 되지 않습니다.
Java나 Python에서는:
- Java에서는
NULL대신null을 사용하지만, 이는 객체 참조를 가리키지 않음을 의미하며 일종의 객체 타입에 속합니다.
- Python에서는
None이 이에 해당하며, 이는 일반적인 수치형 타입과 비교할 수 없습니다.
- Java에서는
질문하신 내용과 유사한 주제는 다음의 질의응답을 참고하실 수 있습니다:
- 자바 래퍼 클래스 관련 질문. 이 게시물에서는 연산자 비교와 관련된 유용한 정보를 다루고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




