Home

(자바 기초) 비교 연산자 완벽 가이드 - ==, !=, <, >= 사용법과 주의점

Published in java
October 16, 2024
1 min read
(자바 기초) 비교 연산자 완벽 가이드 - ==, !=, <, >= 사용법과 주의점

안녕하세요, 코딩하는곰입니다. 오늘은 자바 프로그래밍의 가장 기본이 되는 비교 연산자에 대해 깊이 있게 알아보겠습니다. 20년 넘게 자바를 다루어 오면서 발견한 비교 연산자의 미묘한 차이와 실무에서 자주 발생하는 실수들, 그리고 이를 피하는 방법을 공유하려고 합니다. 자바 초보자부터 중급 개발자까지 모두 유용하게 활용할 수 있는 내용으로 준비했으니 끝까지 함께 해주세요!

1. 기본 비교 연산자 종류와 사용법

자바에서 제공하는 기본적인 비교 연산자에는 다음과 같은 것들이 있습니다:

  • == (동등 연산자): 두 값이 같은지 비교
  • != (부등 연산자): 두 값이 다른지 비교
  • < (작음 연산자): 왼쪽 값이 오른쪽 값보다 작은지 비교
  • > (큼 연산자): 왼쪽 값이 오른쪽 값보다 큰지 비교
  • <= (작거나 같음 연산자): 왼쪽 값이 오른쪽 값보다 작거나 같은지 비교
  • >= (크거나 같음 연산자): 왼쪽 값이 오른쪽 값보다 크거나 같은지 비교
int a = 10;
int b = 20;
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a < b); // true
System.out.println(a >= b); // false

기본형(Primitive type) 변수에서는 이러한 연산자가 직관적으로 동작합니다. 하지만 참조형(Reference type)에서는 상황이 달라지는데, 이에 대해서는 다음 섹션에서 자세히 설명드리겠습니다.

(자바 기초) 비교 연산자 완벽 가이드 - ==, !=, <, >= 사용법과 주의점
(자바 기초) 비교 연산자 완벽 가이드 - ==, !=, <, >= 사용법과 주의점


2. 참조 타입 비교 시 주의사항

많은 자바 개발자들이 참조 타입 비교에서 실수를 합니다. 특히 ==equals()의 차이를 이해하지 못해 발생하는 버그가 매우 흔합니다.

String str1 = new String("Hello");
String str2 = new String("Hello");
System.out.println(str1 == str2); // false (메모리 주소 비교)
System.out.println(str1.equals(str2)); // true (내용 비교)

객체 비교 시 ==는 메모리상의 동일한 객체인지 비교하는 반면, equals()는 객체의 내용이 같은지 비교합니다. 따라서 문자열이나 커스텀 객체를 비교할 때는 대부분 equals()를 사용해야 합니다. 또 다른 주의점은 NullPointerException 방지입니다:

String str3 = null;
// System.out.println(str3.equals("Hello")); // NullPointerException
System.out.println("Hello".equals(str3)); // 안전한 비교 방식

(자바 기초) 비교 연산자 완벽 가이드 - ==, !=, <, >= 사용법과 주의점
(자바 기초) 비교 연산자 완벽 가이드 - ==, !=, <, >= 사용법과 주의점


로또 당첨 확률을 높이고 싶다면, AI 기반 번호 분석과 QR코드 스캔 기능을 제공하는 지니로또AI를 사용해보세요.

3. 실무에서 자주 발생하는 비교 연산자 실수 사례

20년 간의 경험에서 자주 본 비교 연산자 관련 실수들을 공유합니다:

  1. 부동소수점 비교 오류:
double d1 = 0.1 + 0.2;
double d2 = 0.3;
System.out.println(d1 == d2); // false!
// 올바른 방법
System.out.println(Math.abs(d1 - d2) < 0.00001); // true
  1. Wrapper 클래스의 자동 언박싱 문제:
Integer i1 = 127;
Integer i2 = 127;
System.out.println(i1 == i2); // true (캐시 범위 내)
Integer i3 = 128;
Integer i4 = 128;
System.out.println(i3 == i4); // false (캐시 범위 밖)
  1. 열거형(Enum) 비교:
enum Color { RED, GREEN, BLUE }
Color c1 = Color.RED;
Color c2 = Color.RED;
System.out.println(c1 == c2); // Enum은 == 비교 가능 (안전함)

(자바 기초) 비교 연산자 완벽 가이드 - ==, !=, <, >= 사용법과 주의점
(자바 기초) 비교 연산자 완벽 가이드 - ==, !=, <, >= 사용법과 주의점


매일 두뇌 운동을 위한 스도쿠가 필요하다면, 한국어와 영어를 지원하는 스도쿠 저니를 다운로드하세요.

비교 연산자는 자바 프로그래밍의 가장 기본이지만, 그만큼 실수하기도 쉽습니다. 오늘 배운 내용을 바탕으로 여러분의 코드에서 발생할 수 있는 비교 관련 버그를 미리 방지하시길 바랍니다. 특히 참조 타입 비교와 부동소수점 비교는 꼭 주의해 주세요. 다음 시간에는 더 유익한 자바 팁으로 찾아뵙겠습니다. 감사합니다! 코딩하는곰이었습니다. 😊

시간을 측정해야 하는 다양한 상황에서, 간단하고 직관적인 스톱워치를 활용하면 편리합니다.









최상의 건강을 위한 영양가득한 식품과 정보! life-plus.co.kr 바로가기
최상의 건강을 위한 영양가득한 식품과 정보! life-plus.co.kr 바로가기



다채로운 문화축제와 공연 소식을 공유하는 블로그! culturestage.co.kr 바로가기
다채로운 문화축제와 공연 소식을 공유하는 블로그! culturestage.co.kr 바로가기



비트코인 세계로의 첫걸음! 지금 가입하고 거래 수수료 할인 혜택 받으세요! bitget.com 바로가기
비트코인 세계로의 첫걸음! 지금 가입하고 거래 수수료 할인 혜택 받으세요! bitget.com 바로가기




Tags

#developer#coding#java

Share

Previous Article
(자바 기초) 대입 연산자와 복합 대입 연산자 완벽 가이드 - 코딩하는곰

Table Of Contents

1
1. 기본 비교 연산자 종류와 사용법
2
2. 참조 타입 비교 시 주의사항
3
3. 실무에서 자주 발생하는 비교 연산자 실수 사례

Related Posts

(Java 예외 처리 마스터하기) 다중 catch와 예외 흐름 제어의 모든 것 - 코딩하는곰의 20년 노하우
December 16, 2025
3 min