Comparable을 구현할지 고려하라 객체간 정렬이 필요한 경우 사용할 수 있는 인터페이스는 Comparator, Comparable이 있습니다. 여기서 Comparable 인터페이스는 compareTo라는 하나의 메서드를 정의하고 있으며, 이 메서드의 성격은 Object의 equals 메서드와 비슷한데, 동치성 뿐만 아니라 객체의 순서까지 비교가능하고 제네릭하다는 차이점이 있습니다. Comparable을 구현했다는 것은 그 클래스의 인스턴스들에는 자연적인 순서가 있음을 의미합니다. 알파벳, 숫자, 연대 같이 순서가 명확한 값 클래스를 작성한다면 반드시 Comparable 인터페이스를 구현하는게 좋습니다. compareTo 메서드 규약 해당 객체와 주어진(매개변수) 객체의 순서를 비교합니다. 해당 객..
clone 재정의는 주의해서 진행하라 Cloneable 인터페이스는 복제해도 되는 클래스임을 명시하는 용도의 마커 인터페이스입니다. 객체를 복사하고 싶다면 Cloneable 인터페이스를 구현하여 clone 메서드를 재정의하는 방법이 일반적입니다. 그러나 clone 메서드가 선언된 곳은 Cloneable 인터페이스가 아닌 Object 클래스에 선언되어 있고 접근 제한자가 protected 입니다. 그래서 Cloneable 인터페이스를 구현한 것만으로는 외부 객체에서 clone 메서드를 호출할 수 없고 리플렉션을 사용하면 가능하지만 100% 성공하는것도 아닙니다. 접근할려는 객체가 접근이 허용된 clone 메서드를 제공하지 않는다면 성공을 할 수 없습니다. public class Object { @HotSp..
toString을 항상 재정의하라 Object 클래스에서 기본적으로 제공하는 toString 메서드는 우리가 보기에 적합하지 않습니다. 클래스명@16진수로_표시된_해시코드 반환 toString의 일반 규약에 따라 간결하면서 사람이 읽기 쉬운 형태의 유익한 정보를 반환해야 합니다. 또한 toString의 규약은 모든 하위 클래스에서 이 메서드를 재정의하라 라고 하고 있습니다. toString을 잘 구현하는 클래스 사용자 입장에서 객체 정보를 한눈에 볼 수 있습니다. 해당 클래스를 디버깅하기 좋습니다. 디버깅시 클래스명@1238abcf24 보다는 적절한 값이 출력되는게 알아보기 쉽습니다. toString 포맷 문서화 toString을 재정의할 때 반환값의 포맷을 문서화 할지 정해야 합니다.(선택) 포맷을 명..
equals를 재정의하려거든 hashCode도 재정의하라 equals를 재정의한 클래스에서는 반드시 hashCode도 재정의해야 합니다. 그렇지 않으면 hashCode 일반 규약을 어기게 되어 해당 클래스의 인스턴스를 HashMap이나 HashSet같은 컬렉션의 원소로 사용할 때 문제가 발생합니다. hashCode의 일반 규약 애플리케이션이 실행되는 동안 equals 비교에 사용되는 정보가 변경되지 않았다면, 그 객체의 hashCode를 몇 번이고 호출해도 일관되게 유지되어야 합니다. equals를 통해 두 객체가 동일하다고 판단되면 두 객체의 hashCode는 동일한 값을 반환해야 합니다. equals를 통해 두 객체가 동일하지 않다고 판단하더라도 hashCode가 서로 다른 값을 반환할 필요는 없습..
- Total
- Today
- Yesterday
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- pipe and filter architecture
- spring boot poi excel download
- 공간 기반 아키텍처
- polling publisher spring boot
- 자바 백엔드 개발자 추천 도서
- spring boot redisson destributed lock
- @ControllerAdvice
- transactional outbox pattern spring boot
- spring boot 엑셀 다운로드
- 트랜잭셔널 아웃박스 패턴 스프링부트
- spring boot redis 대기열 구현
- pipeline architecture
- java ThreadLocal
- spring boot redisson 분산락 구현
- transactional outbox pattern
- spring boot redisson sorted set
- redis sorted set
- redis 대기열 구현
- spring boot excel download oom
- microkernel architecture
- 람다 표현식
- spring boot excel download paging
- 레이어드 아키텍처란
- JDK Dynamic Proxy와 CGLIB의 차이
- redis sorted set으로 대기열 구현
- java userThread와 DaemonThread
- space based architecture
- 서비스 기반 아키텍처
- service based architecture
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |