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

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item20. 추상 클래스보다는 인터페이스를 우선하라 추상클래스와 인터페이스는 디폴트 메소드를 통해서 인스턴스 메소드를 구현 형태로 제공할 수 있다는 공통점이 있지만 차이점이 많이 존재한다. 차이점 추상 클래스는 정의한 타입을 구현하는 클래스는 반드시 추상클래스의 하위 클래스가 되어야 한다. 자바에서는 단일 상속을 하기 때문에 새로운 타입을 정의하는데 제약이 있다. 인터페이스는 선언한 메소드를 모두 정의하고, 규약을 잘 지킨 클래스라면 어떤 클래스를 상속하더라도 같은 타입으로 취급한다. 또한 인터페이스는 implements구문을 통해 쉽게 구현해넣을 수 있..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 19. 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라 외부 클래스를 상속할 경우 언제 변경될지 모르기 때문에 여러 문제가 발생할 수 있다. 그렇기 때문에 상속용 클래스를 설계 할 때는 문서화가 필요하다. 문서에 남겨야 하는 내용 재정의할 수 있는 메소드들이 내부적으로 어떻게 이용하는지 적어야 한다. API로 공개된 메소드로부터 호출되는 재정의 메소드는 호출된다는 사실과 어떤 순서로 호출되는지와 호출 결과에 이어지는 처리에 어떤 영향을 주는지 적어야 한다. ※ 재정의 가능 메소드 : public(or protected)메소드 중..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 18. 상속보다는 컴포지션을 사용하라 상속은 코드 재사용을 활용하는 좋은 수단이지만 항상 최선은 아니다. 상속을 써도 문제가 없는 경우에는 아래 두 가지 방법 밖에없다. 상위 클래스와 하위 클래스가 모두 통제되는 패키지 안에 있을 경우 확장할 목적으로 설계되었고 문서화도 잘 된 클래스 상속은 메소드 호출을 하는 방식과는 다르게 캡슐화를 깨뜨린다. public class InstrumentedHashSet extends HashSet { private int addCount = 0; public InstrumentedHashSet() { } publ..
이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 17. 변경 가능성을 최소화하라. 불변 클래스란 인스턴스의 내부 값을 수정할 수 없는 클래스이다. 자바 플랫폼 라이브러리에 String, 기본 타입의 박싱된 클래스들, BigInteger, BigDecimal이 그렇다. 불변 클래스를 만들기 위한 규칙 객체의 상태를 변경하는 메소드(변경자)를 제공하지 않는다. (ex: setter) 클래스를 확장할 수 없도록 한다.(ex : final 클래스로 선언하거나 정적 팩토리 메소드) 모든 필드를 final로 선언한다. 모든 필드를 private로 선언한다. public final도 불변이 되지만, 다음 릴..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 16. public 클래스에서는 public 필드가 아닌 접근자 메소드를 사용하라. public class Point { private double x; private double y; public Point(double x, double y) { this.x = x; this.y = y; } public double getX() { return x; } public void setX(double x) { this.x = x; } public double getY() { return y; } public void setY(double y) { th..