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 |
Tags
- php
- while
- react
- DS
- data structure
- html
- instruction
- DB
- MacOS
- computer
- web
- Class
- DoM
- for
- function
- system
- DATAPATH
- Linux
- javascript
- XML
- MIPS
- mysql
- Java
- Algorithm
- CSS
- control
- python
- Pipelining
- architecture
- github
Archives
- Today
- Total
YYYEJI
[JAVA] 객체 주소값 확인하기 본문
728x90
객체의 주소를 확인하기 위해 우리는 hashcode() 함수를 사용할 수 있습니다.
주소값은 중요하기 때문에 Hashcode는 실제 메모리 주소가 아닌 메모리 주소 값에 해싱된 값을 return 해줍니다.
- 두 객체의 hashcode가 다르면 두 객체가 같지 않음을 나타냅니다.
- 두 객체의 hashcode가 같으면 두 객체가 같거나 다를 수 있음을 나타냅니다.
객체의 주소값이 같은지 확인하고 싶을 때 자바에서는 "==" operator을 사용합니다.
기본적으로 우리가 아는 "=="의 역할은 어떤 두 개의 값이 같은지 확인하는 용도였을 것입니다.
그럼 자바에서 두 개의 값이 같은지 확인하는 용도는 어떻게 할까요?
equals()라는 함수를 사용합니다.
아래 예제를 통해 더 잘 살펴봅시다.
public static void main(String[] args) {
String word1 = new String("Hello");
String word2 = new String("Hello");
System.out.println(word1.hashCode());
System.out.println(word2.hashCode());
System.out.println(word1 == word2);
System.out.println(word1.equals(word2));
}
word1과 word2의 hashCode는 동일합니다.
하지만 주소값을 비교해보면 동일하지 않음을 알 수 있습니다.
마지막으로 두 개의 문자열이 일치하는지 확인하기 위해 equals 함수를 사용했고
두 개의 문자열이 같다는 것을 확인할 수 있습니다.
public static void main(String[] args) {
String word1 = new String("Hi");
String word2 = new String("Hello");
System.out.println(word1.hashCode());
System.out.println(word2.hashCode());
System.out.println(word1 == word2);
System.out.println(word1.equals(word2));
}
word1과 word2의 value가 다르기 때문에 hashCode, address, value 모두 다릅니다.
◡̈
'Java' 카테고리의 다른 글
[JAVA] 트레이싱(Tracing) 개념 알아보기 (0) | 2022.12.26 |
---|---|
[JAVA] Enum 클래스란? (0) | 2022.12.25 |
[JAVA] do-while문이란? (0) | 2022.12.24 |
[JAVA] While문이란? (0) | 2022.12.24 |
[JAVA] For-each문이란? (0) | 2022.12.24 |