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

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 25. 톱레벨 클래스는 한 파일에 하나만 담으라 소스 파일 하나에 톱레벨 클래스를 여러 개 선언하더라도 자바 컴파일러는에서 따로 불평하지 않는다. 하지만 컴파일 오류가 생길 가능성이 있다. 이렇게 하면 한 클래스를 여러 가지로 정의할 수 있지만 어느 것을 사용할지는 어느 소스 파일을 먼저 컴파일하냐에 따라 달라지기 때문이다. class Utensil { static final String NAME = "pan"; } class Dessert { static final String NAME = "cake"; } class Utensil { stati..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 24. 멤버 클래스는 되도록 static으로 만들라 중첩 클래스(nested class) 다른 클래스 안에 정의된 클래스 자신을 감싼 바깥 클래스에서만 쓰여야 한다. 중첩 클래스의 종류 정적 멤버 클래스 (비정적) 멤버 클래스 익명 클래스 지역 클래스 정적 멤버 클래스 class 내부에서 static으로 선언된 클래스로 다른 클래스 안에 선언된다. 바깥 클래스의 private 멤버에도 접근할 수 있다. 비정적 멤버 클래스 바깥 클래스의 인스턴스와 암묵적으로 연결된다. 비정적 멤버 클래스의 인스턴스 메소드에서 정규화된 this를 사용해 바깥 인스턴스..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 22. 인터페이스틑 타입을 정의하는 용도로만 사용하라 인터페이스는 자신이 구현한 클래스의 인스턴스를 참조할 수 있는 타입 역할을 한다. 이 말은 자신의 인스턴스로 무엇을 할 수 있는지 말해주는 것 뿐만 해야한다는 것이다. 상수 인터페이스는 메소드 없이 static final 필드로만 차있는 인터페이스이다. public interface PhysicalConstants { static final double AVOGADROS_NUMBER = 6.022_140_857e23; static final double BOLTZMANN_CONSTANT = 1...

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 21. 인터페이스는 구현하는 쪽을 생각해 설계하라 자바 8 버전 이전에는 인터페이스에 기존 구현부를 깨지 않고는 메소드를 추가할 수 없었다. 8버전 부터는 디폴트 메소드를 사용하여 이를 해결하였지만 이것도 완벽하지는 않다. default boolean removeIf(Predicate

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