Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- JPQL
- 자바
- gtihub
- spring
- 11월순위
- docker
- 애널리틱스4
- codeium
- 컬렉션프레임워크
- 데이터내보내기
- 르세라핌
- docker build
- 명령어
- analytics4
- db종류
- docker push
- DBMS
- IntelliJ
- 오블완
- git branch 삭제
- java
- 티스토리챌린지
- Python
- 도커이미지
- git pat
- macvlan
- ANTIFRAGILE
- pat발급
- JPA
Archives
- Today
- Total
hanker
JAVA - 값 비교 (문자열 / 숫자 등등) 본문
반응형
Java에서 값 비교는 여러 가지 방법으로 수행하게 되는데,
기본적으로 값 비교는 두 가지(기본 데이터 타입(primitive type), 객체(Object))로 나뉜다.
각 경우의 비교 방식을 알아보자
기본 데이터 타입(Primitive Type)
기본 데이터 타입은 int, char, boolean, float, double 등의 타입을 포함하며, == 연산자를 사용해 값을 비교한다.
public static void main(String[] args) {
String a = "hanker";
String b = "hanker2";
if (a == b) {
System.out.println("a와 b는 같습니다.");
} else {
System.out.println("a와 b는 다릅니다.");
}
}
반응형
객체(Object) 타입
객체의 경우, == 연산자는 두 객체의 참조(reference)를 비교한다.
즉, 두 변수가 같은 메모리 주소를 가리키는지를 확인하는데, 객체의 실제 값(내용)을 비교하려면 .equals() 메서드를 사용해야 한다.
public static void main(String[] args) {
String str1 = new String("hanker");
String str2 = new String("hanker");
if (str1 == str2) {
System.out.println("str1과 str2는 같은 객체입니다.");
} else {
System.out.println("str1과 str2는 다른 객체입니다.");
}
if (str1.equals(str2)) {
System.out.println("str1과 str2의 값이 같습니다.");
} else {
System.out.println("str1과 str2의 값이 다릅니다.");
}
}
==: 객체의 주소(참조)를 비교
.equals(): 객체의 값(내용)을 비교
문자열 비교 시 주의사항
Java에서 문자열 비교는 매우 많이 사용된다. == 연산자를 사용하면 의도치 않게 참조 비교가 될 수 있으므로 항상 .equals() 메서드를 사용해 문자열 값을 비교하는 것이 좋다.
public static void main(String[] args) {
String s1 = "hanker";
String s2 = "hanker";
System.out.println(s1 == s2); // true (같은 리터럴이므로 같은 참조)
System.out.println(s1.equals(s2)); // true (값 비교)
}
정리
- 기본 타입 비교 시 == 연산자 사용
- 객체의 값 비교 시 .equals() 메서드 사용
- 문자열 비교 시 .equals() 사용이 안전
- 사용자 정의 클래스는 equals()와 hashCode()를 적절히 오버라이드해야 객체의 올바른 값 비교가 가능
반응형
'JAVA' 카테고리의 다른 글
JAVA - 문자열이 특정 문자로 시작하는지 확인하기 : startsWidth() 사용법 (0) | 2024.11.11 |
---|---|
java.lang.UnsupportedOperationException 에 대해서 (1) | 2024.11.09 |
JAVA - HttpUrlConnection, HttpsUrlConnection (Content-Type 설정) (2) (0) | 2024.10.20 |
JAVA - 멀티 쓰레드 연산처리 (AtomicInteger) (0) | 2024.10.12 |
JAVA - 멀티쓰레드(Multi Thread) 반복문 병렬처리 방법 (1) | 2024.10.12 |