반응형
청춘고양이
배움을 기록하는 곳
청춘고양이
전체 방문자
오늘
어제
  • Hello World (119)
    • JQuery (5)
    • In my opinion (4)
    • HTML&CSS (8)
    • JS (9)
    • JAVA (21)
    • Spring Boot (21)
    • Node.js (1)
    • Linux (7)
    • Git (2)
    • Kotlin (4)
    • Fluttor (4)
    • 정보처리기사 (19)
    • AWS (1)
    • Oracle (8)
    • MySQL (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바
  • js
  • css
  • 중복 제거 로또
  • js 로또 번호
  • 청춘고양이
  • 제이쿼리 비밀번호
  • js 패스워드 변경
  • spring 기본설정
  • 제이쿼리
  • 스크롤js
  • 초보개발
  • ScrollEffectJs
  • 제이쿼리 버튼클릭시 색 변경
  • 자바db연동
  • 제이쿼리 패스워드 변경
  • 쉬프트 연산
  • 가위바위보js
  • js 비밀번호
  • 객체 안의 함수

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
청춘고양이

배움을 기록하는 곳

In my opinion

HashCode

2022. 5. 25. 00:59
반응형

해시 코드는 객체 멤버 변수의 메모리 번지수를 찍어냄 즉, 우리가 String 타입의 무언가를 가져올 때  toString을 재정의 하지 않으면 User@1 b3 b2 a 이런 식으로 출력이 된다 즉 골뱅이 뒤에 있는 번지수를 찍어 내는데 이것은 컴퓨터가 무언가를 저장할 때 16진수로 저장할 때 사용하는 방식이다 그러면 객체의 멤버 변수가 문자열이 같으면 해시 코드는 같나? 같다고 할 수 있다. 객체의 문자열을 찍어주는 메모리 번지수를 우리는 해시 코드라고 할 수 있기 때문이다. 이러한 해시 코드의 사용 이유는 그럼 무엇인가? 객체는 키와 값으로 저장하는데 키는 여기서 메모리 번지수라고 할 수 있고 값은 더미 데이터 즉, 버려지는 값인 거다. 우리가 멤버 변수에 직접 넣는 값들은 버려지는 값인 거다. 그러면 왜 이런 방식을 이용할까? 컴퓨터의 성능적인 면에서 저장할 게 너무 많으면 성능 처리가 늦어지게 때문 그렇다면 객체의 멤버 변수가 문자열 즉, String타입이면 해시 코드를 굳이 재정의 할 필요는 없다고 할 수 있다.

그렇다면 해시 코드는 어디서 온 것인가? Set 객체의 메서드다. Set객체는 중복을 절대 하용하지 않고 순서를 고려하지 않는데 고려하는 경우도 있다 고려하지 않는 경우를 Set메서드의 해시 코드가 담당하고 고려하는 경우를 솔티드 코드가 담당을 하고 있다.


피드백은 언제나 환영입니다.

반응형
저작자표시 (새창열림)

'In my opinion' 카테고리의 다른 글

현재 개발자 취업 시장: 현실과 도전  (0) 2024.06.14
JS 객체 안의 함수  (0) 2022.05.30
XHR  (0) 2022.05.26
    'In my opinion' 카테고리의 다른 글
    • 현재 개발자 취업 시장: 현실과 도전
    • JS 객체 안의 함수
    • XHR
    청춘고양이
    청춘고양이
    신입개발자

    티스토리툴바