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
- 우선순위 큐(priorityqueue)
- 코딩
- 면접(java
- 정렬 알고리즘(sort algorithm)
- 배열
- 자료구조
- 메서드
- Grafana
- 99클럽
- 개발자 취업
- 코딩테스트 준비
- css
- GIT
- Entity
- 자바
- wil
- 코딩문제
- ArrayList
- 이진 탐색(binary search)
- github
- 코딩공부
- Java
- cs 공부)준비
- 회고
- aop
- Til
- 프로그래머스
- HTML
- 항해99
- Spring
Archives
- Today
- Total
hayu's 개발 일지
[TIL]240424 JAVA ==과 equals() 차이 본문
==과 equals() 차이
- == 연산자는 객체의 주소를 비교하여 일치하는지 확인하고, equals() 메서드는 객체의 내용을 비교하여 같은지 확인하는 메서드이다.
== 연산자
- ==연산자는 두 문자열의 주소(참조)값이 같은지 비교한다. 즉, 두 객체가 메모리에서 동일한 위치를 가리키는지 확인한다.
→ 주소값이 다르면 false가 된다.
equals()
- equals() 메서드는 두 객체의 내용을 비교한다. 즉, 두 객테가 동일한 값을 가지고 있는지 확인한다.
문자열(String) ==과 equals() 차이
- ==연산자는 두 문자열의 주소(참조)값이 같은지 비교하고 equals() 메서드는 두 객체의 내용을 비교한다.
- 문자열 리터럴을 사용하면 문자열이 같으므로 true를 반환한다. 그러나 new 연산자로 생성한 문자열과 리터럴은 주소값이 다르므고 false를 반환한다.
String str1 = "string"; // 리터럴로 선언
String str2 = "string"; // 리터럴로 선언
String str3 = new String("string"); // new 연산자로 선언
System.out.println(str1 == str2); // true
System.out.println(str1 == str3); // false
- equals() 메서드는 문자열의 내용을 비교한다. str1과 str3은 주소값이 다르더라도 내용이 같기 때문에 true를 반환한다.
String str1 = "string"; // 리터럴로 선언
String str2 = "string"; // 리터럴로 선언
String str3 = new String("string"); // new 연산자로 선언
System.out.println(str1.equals(str2)); // true
System.out.println(str1.equals(str3)); // true
⇒ 문자열로 내용을 비교하려할 때는 .equals() 메서드를 사용해야한다.
'기술 > java' 카테고리의 다른 글
99클럽 코테 스터디 13일차 TIL + 재귀 함수 (0) | 2024.06.02 |
---|---|
[TIL]240502 Garbage Collection (0) | 2024.05.02 |
[TIL]240417 열거형(enum) (0) | 2024.04.17 |
[TIL]240416 wrapper 클래스 (0) | 2024.04.16 |
[TIL]240410 JAVA Collection (0) | 2024.04.10 |