일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코테
- BFS
- DFS
- 우선순위큐
- 탐욕법
- DP
- SQL
- Database
- db
- java
- Greedy
- Spring
- 그리디알고리즘
- 다이나믹프로그래밍
- 깊이우선탐색
- 너비우선탐색
- 데이터베이스
- 피보나치
- join
- IntelliJ
- springboot
- select
- Effective Java
- 알고리즘
- mybatis
- mariaDB
- 이펙티브자바
- 백준
- 프로그래머스
- 정렬
- Today
- Total
목록분류 전체보기 (248)
땀두 블로그

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 15. 클래스와 멤버의 접근 권한을 최소화하라 잘 설계된 컴포넌트와 그렇지 못한 컴포넌트의 가장 큰 차이점은 클래스 내부 데이터와 구현 정보를 외부로부터 얼마나 잘 숨겼고 꼭 필요한 정보들만 공개를 했는가다. 잘 설계된 컴포넌트일수록 내부 구현을 완벽히 숨겨서 구현과 API를 분리한다. 이처럼 구현과 API가 분리되어있다면 사용자 입장에서는 API만 신경쓰면되고 그 결과에만 집중하면된다. 이런 개념을 정보 은닉, 혹은 캡슐화라고 한다. 정보은닉의 장점은 대부분 컴포넌트를 서로 독립시켜 개발,테스트, 최적화, 적용, 분석, 수정을 개별적으로 할 수 ..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 14. Comparable을 구현할지 고려하라 객체에서 정렬이 필요할 때 Comparator, Comparable 인터페이스를 많이 사용한다. Comparable: 인터페이스를 구현한 객체 스스로에게 부여하는 한 가지 기본 정렬 규칙을 설정 Comparator: 인터페이스를 구현한 클래스는 정렬 규칙 그 자체. 기본 정렬 규칙과는 다르게 사용자가 원하는대로 정렬 순서를 지정 Comparable 인터페이스는 compareTo라는 메소드를 정의하는데, 이 메소드는 Object 메소드가 아니다. 성격은 Object의 equals와 유사한데, 동치성 비교..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 13. clone 재정의는 주의해서 진행하라 Cloneable 복제해도 되는 클래스임을 명시하는 믹스인 인터페이스(mixin interface) 객체를 복사하고싶다면 Cloneable 인터페이스를 구현해 clone 메소드를 재정의하는 방법이 일반적이지만, clone 메소드는 Cloneable이 아니라 Object에 선언되어 있고, protected 접근제어자로 되어 있어 같은 패키지가 아니면 접근할 수 없다. 따라서 Cloneable 인터페이스를 구현하는 것 만으로는 clone 메소드 호출이 안된다. Cloneable의 역할 Object 클래스의 ..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 12. toString을 항상 재정의하라. toString 메소드의 일반 규약은 간결하면서 사람이 읽기 쉬운 형태의 유익한 정보를 반환해야 한다. 하지만 우리가 확인 가능한 것은 클래스이름과 16진수로 표현된 해시코드 뿐이다. 우리는 toString을 재정의하여 디버깅 및 정보 가시성을 높여야 한다. toString을 재정의 할 때는 객체 스스로를 완벽히 설명하는 문자열이어야 하고, 객체가 가진 주요 정보를 모두 반환하는 것이 좋다. 포맷이 정해져 있는 경우, 재정의하고 주석을 달아서 문서화를 해주면 더욱 정보를 보기 쉽다. /** * 이 전화번호..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 11. equals를 재정의 하려거든 hashCode도 재정의하라 equals : 두 객체의 내용이 같은지, 동등성(equality)를 비교하는 메소드 hashCode : 두 객체가 같은 객체인지, 동일성(identity)를 비교하는 메소드 Object 명세에서 발췌한 HashCode 규약 애플리케이션이 유지되는 동안 equals비교에 사용되는 정보가 변경되지 않았다면, 몇 번을 호출하더라도 일관된 값을 반환해야 한다. equals(Object)가 동일하다고 판단되면 두 객체의 hashCode는 동일한 값을 반환해야 한다. equals(Object..