| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 가비지컬렉션
- 개발자팁
- 프로그래머스
- Java
- 자바기초
- 자바공부
- 코딩테스트준비
- 객체지향
- 파이썬
- 자바개발
- 코딩테스트팁
- 멀티스레드
- 자료구조
- 알고리즘공부
- 자바프로그래밍
- 정렬
- 개발공부
- 프로그래밍기초
- HashMap
- 자바
- 메모리관리
- 예외처리
- 코딩공부
- 개발자취업
- 코딩테스트
- 클린코드
- JVM
- 알고리즘
- 백준
- 코딩인터뷰
- Today
- Total
목록equals (3)
코드 한 줄의 기록
Java 개발을 하다 보면 Map은 정말 자주 사용하게 되는 자료구조입니다. 특히 HashMap은 거의 매일 쓰게 되는데요, 막상 "왜 HashMap을 쓰는 거야?"라고 물어보면 명확하게 대답하기 어려운 경우가 많습니다. 저도 처음엔 그냥 데이터를 key-value로 저장하는 거구나 정도로만 알고 있었는데, 공부하면서 내부 구조와 각 Map의 특징을 알게 되니 훨씬 더 효율적으로 사용할 수 있더라고요. 특히 커스텀 객체를 키로 사용할 때 제대로 동작하지 않아서 한참 헤맸던 경험도 있습니다. 그래서 오늘은 저와 같은 고민을 하시는 분들께 도움이 되고자, HashMap, LinkedHashMap, TreeMap의 차이점과 함께 키 설계의 핵심을 정리해봤습니다.HashMap: 빠른 검색의 핵심, 해싱의 마법H..
가장 먼저 결론부터 말하면, “도메인 모델의 동등성은 일관되고 예측 가능해야 하며, 컬렉션에 넣는 순간부터 계약을 끝까지 지켜야 한다.” 이 문장을 머리에 박아두면 equals/hashCode/toString을 설계할 때 흔들리지 않는다. 아래 내용은 실무에서 부딪혔던 함정과 Lombok으로 편하게 작성할 때 생기는 미묘한 위험까지 담았다.왜 equals/hashCode/toString이 중요한가자바에서 객체는 기본적으로 참조 동일성(==)을 기준으로 비교된다. 하지만 비즈니스 로직에서는 “같은 의미”를 갖는 객체를 값으로 다루고 싶을 때가 많다. 예를 들어, 같은 주민등록번호의 User는 같은 사람이다. 이때 equals와 hashCode를 “의미 기반”으로 재정의하면, Set이나 Map 같은 컬렉션이..
Java를 배우면서 가장 자주 사용하게 되는 데이터 타입이 바로 String입니다. 하지만 String의 내부 동작 원리를 제대로 이해하고 있는 개발자는 그리 많지 않습니다. 오늘은 Java String의 불변성(Immutability), String Pool의 메모리 최적화 원리, 그리고 올바른 문자열 비교 방법에 대해 함께 알아보겠습니다.String의 불변성(Immutability)이란?불변 객체의 정의Java에서 String은 불변(Immutable) 객체입니다. 불변 객체란 한번 생성된 후 내부의 상태가 변하지 않고 계속 유지되는 객체를 말합니다. 즉, 변수에 객체가 한 번 할당되면 해당 객체의 참조를 변경할 수도, 내부의 상태를 수정할 수도 없습니다.String str = "Hello";str ..