반응형
자바를 사용한다면 JVM 이 뭔지 알것이라고 생각이 되지만 혹시 좀더 이해가 필요하면 아래 참고 포스팅을 참고 바란다.
자바에서 만약
String text = "A";
이라고 선언을 하면 jvm 메모리 어딘가에 text 값을 저장하고 있는 위치가 있다.
그 것을 확인하기 위해서는 아래와 같이 사용을 한다.
System.identityHashCode(text));
자세히 보면 hashcode라는 글이 있는데
아래 참고 포스팅을 확인하면 도움이 될것이다.
사용을 하면 실제 물리적인 jvm 의 메모리 위치 주소가 출력이 된다.
hashcode와 identityHashCode 둘의 차이는
Object의 hashCode() 메소드는 하위 클래스에서 override가 가능하기 때문에 객체마다 유일한 값을 갖고 있지 않는다.
객체의 특성이 동일하다는 것을 표현하기 위해 이 메소드를 오버라이드할 수 있다.
예를 들어, String의 hashcode가 갖다면 객체는 달라도 문자열은 동일하다는 것을 의미한다.
반면에 System.identityHashCode()는 오버라이드가 안되며 객체의 고유한 hashCode를 리턴한다. 객체 자체를 비교하려면 이 메소드를 사용하는 것이 좋다.
참고 포스팅
https://thenicesj.tistory.com/131
https://thenicesj.tistory.com/194
반응형
'IT > Java' 카테고리의 다른 글
spring-boot-maven-plugin (33) | 2023.06.22 |
---|---|
@PostConstruct, @PreDestroy 어노테이션 (39) | 2023.06.20 |
Optional – orElse() 와 orElseGet() (37) | 2023.06.16 |
[eclipse] Ant 란? (36) | 2023.06.15 |
Java 에서의 정규 표현식 (38) | 2023.06.14 |
댓글