# Effective Java

23개의 포스트
post-thumbnail

아이템 31. 한정적 와일드카드를 사용해 API 유연성을 높이라

매개변수화 타입은 불공변(invariant)이다. List에서 선언된 제네릭 타입은 서로 관계가 없음을 의미한다.List에 뭐든 넣을 수 있지만, List에는 문자열만 들어가므로 List의 하위 타입이 될 수 없다. (리스코프 치환 원칙에 어긋남)불공변 방식보다 유연함

1일 전
·
0개의 댓글
post-thumbnail

아이템 30. 이왕이면 제네릭 메서드로 만들라

매개변수화 타입을 받는 정적 유틸리티 메서드는 보통 제네릭이다.e.g. 제네릭 메서드요청한 타입 매개변수에 맞게 매번 그 객체의 타입을 바꿔주는 정적 팩토리자기 자신이 들어간 표현식을 사용하여 타입 매개변수의 허용범위를 한정하는 것이는 우리가 자주 사용하는 Compar

2일 전
·
0개의 댓글
post-thumbnail

아이템 29. 이왕이면 제네릭 타입으로 만들라

E와 같은 실체화 불가 타입으로는 배열을 만들 수 없다.제네릭 배열을 선언한다.타입 안전함이 보장되는지 여부는 사람이 일일히 확인해야 한다. 검증이 완료되었다면 경고가 발생하는 구문에 @SupressWarnings("unchecked") 어노테이션을 달아 숨길 수 있다

2일 전
·
0개의 댓글
post-thumbnail

아이템 28. 배열보다는 리스트를 사용하라

배열은 공변(covariant)이다. 아래의 예제에서 Long은 Object의 하위 타입이므로 Long\[]은 Object\[]의 하위 타입이 된다. 이로 인해 런타임 에러가 발생할 여지가 있다.제네릭은 불공변(invariant)이다. 배열과 달리 타입이 다르다면 선언

2일 전
·
0개의 댓글

[Effective Java 3/E] 10장 예외

아이템 69. 예외는 진짜 예외 상황에만 사용하라아이템 70. 복구할 수 있는 상황에는 검사 예외를, 프로그래밍 오류에는 런타임 예외를 사용하라아이템 71. 필요 없는 검사 예외 사용은 피하라아이템 72. 표준 예외를 사용하라아이템 73. 추상화 수준에 맞는 예외를 던

2020년 5월 3일
·
0개의 댓글

[Effective Java 3/E] 9장 일반적인 프로그래밍 원칙

아이템 57. 지역변수의 범위를 최소화하라아이템 58. 전통적인 for 문보다는 for-each 문을 사용하라아이템 59. 라이브러리를 익히고 사용하라아이템 60. 정확한 답이 필요하다면 float와 double은 피하라아이템 61. 박싱된 기본 타입보다는 기본 타입을

2020년 5월 3일
·
0개의 댓글

[Effective Java 3/E] 8장 메서드

아이템 49. 매개변수가 유효한지 검사하라아이템 50. 적시에 방어적 복사본을 만들라아이템 51. 메서드 시그니처를 신중히 설계하라아이템 52. 다중정의는 신중히 사용하라아이템 53. 가변인수는 신중히 사용하라아이템 54. null이 아닌, 빈 컬렉션이나 배열을 반환하

2020년 5월 3일
·
0개의 댓글

[Effective Java 3/E] 7장 람다와 스트림

아이템 42. 익명 클래스보다는 람다를 사용하라아이템 43. 람다보다는 메서드 참조를 사용하라아이템 44. 표준 함수형 인터페이스를 사용하라아이템 45. 스트림은 주의해서 사용하라아이템 46. 스트림에서는 부작용 없는 함수를 사용하라아이템 47. 반환 타입으로는 스트림

2020년 5월 3일
·
0개의 댓글

[Effective Java 3/E] 6장 열거 타입과 애너테이션

아이템 34. int 상수 대신 열거 타입을 사용하라아이템 35. ordinal 메서드 대신 인스턴스 필드를 사용하라아이템 36. 비트 필드 대신 EnumSet을 사용하라아이템 37. ordinal 인덱싱 대신 EnumMap을 사용하라아이템 38. 확장할 수 있는 열거

2020년 5월 3일
·
0개의 댓글

[Effective Java 3/E] 5장 제네릭

아이템 26. 로 타입은 사용하지 말라아이템 27. 비검사 경고를 제거하라아이템 28. 배열보다는 리스트를 사용하라아이템 29. 이왕이면 제네릭 타입으로 만들라아이템 30. 이왕이면 제네릭 메서드로 만들라아이템 31. 한정적 와일드카드를 사용해 API 유연성을 높이라아

2020년 5월 3일
·
0개의 댓글

[Effective Java 3/E] 4장 클래스와 인터페이스

아이템 15. 클래스와 멤버의 접근 권한을 최소화하라아이템 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라아이템 17. 변경 가능성을 최소화하라아이템 18. 상속보다는 컴포지션을 사용하라아이템 19. 상속을 고려해 설계하고 문서화하라.

2020년 5월 3일
·
0개의 댓글

[Effective Java 3/E] 3장 모든 객체의 공통 메서드

아이템 10. equals는 일반 규약을 지켜 재정의하라아이템 11. equals를 재정의하려거든 hashCode도 재정의하라아이템 12. toString을 항상 재정의하라아이템 13. clone 재정의는 주의해서 진행하라아이템 14. Comparable을 구현할지 고

2020년 5월 3일
·
0개의 댓글

[Effective Java 3/E] 2장 객체 생성과 파괴

정적 팩터리 메서드장점1\. 이름을 가질 수 있다2\. 호출될 때마다 인스턴스를 새로 생성하지는 않아도 된다

2020년 5월 3일
·
0개의 댓글
post-thumbnail

이펙티브 자바 3/E - 2장 아이템 5

자원을 직접 명시하지 말고 의존 객체 주입을 사용하라.

2020년 3월 24일
·
0개의 댓글
post-thumbnail

이펙티브 자바 3/E - 2장 아이템 4

인스턴스화를 막으려거든 private 생성자를 사용하라.

2020년 3월 24일
·
0개의 댓글
post-thumbnail

이펙티브 자바 3/E - 2장 아이템 3

private 생성자나 열거 타입으로 싱글턴임을 보증하라.

2020년 3월 3일
·
0개의 댓글
post-thumbnail

이펙티브 자바 3/E - 2장 아이템 2

생성자에 매개변수가 많다면 빌더를 고려하라.

2020년 3월 2일
·
0개의 댓글
post-thumbnail

이펙티브 자바 3/E - 2장 아이템 1

생성자 대신 정적 팩터리 메서드를 고려하라.

2020년 2월 24일
·
2개의 댓글

이펙티브자바 2장

##2장. 객체 생성과 파괴. 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라. 정적팩터리메서드 ? 그 클래스의 인스턴스를 반환하는 단순한 정적 메서드. > 이 메서드는 기본타입인 boolean 값을 받아 Boolean 객체 참조로 변환해준다. 디자인 패턴에서의 팩터리 메서드와는 다르다. 정적팩터리메서드의 장점. 이름을 가질 수 있다...

2019년 6월 16일
·
0개의 댓글

190517 이펙티브자바 질의응답

190517 컴포넌트 : >큰 구성요소들. ex)오디오 컴포넌트 등.. 캐싱 : >한 번 만들어서 있는 걸 재활용하는 것. ex)싱글턴패턴. p9. 하나의 시그니처로는 생성자를 하나만 만들 수 있다. 입력매개변수들의 순서를 다르게 한 생성자를 새로 추가하는 식으로.. >생성자가 여러 개면, 개발자가 어떤 생성자를 호출해야할지 혼동해서 엉뚱한 생성자를 ...

2019년 6월 16일
·
0개의 댓글