본문 바로가기
IT/Java

JVM 내에 저장되어있는 데이터 위치 값 확인

by 성준하이 2023. 6. 18.
반응형

자바를 사용한다면 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

 

JDK , JRE , JVM 차이?

이번 포스팅에서는 java를 사용하게 된다면 무조건 만나게 되는 이 jdk, jre, jvm에 대해서 설명을 해볼것이다. 용어의 관계는 JDK가 JRE,JVM을 포함하고 있고, JRE는 JVM을 포함하고 있다. 그림으로 본다

thenicesj.tistory.com

 

https://thenicesj.tistory.com/194

 

equals 와 hashCode의 재정의를 같이 해야하는 이유

먼저 아래와 같이 클래스를 정의해두고 public class Person { private final String name; public Person(tring name) { this.name = name; } // intellij Generate 기능 사용 @Override public boolean equals(Object o) { if (this == o) return true;

thenicesj.tistory.com

 

반응형

'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

댓글