Skip to content

been1118/Effective_Java

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Effective_Java 스터디

ITEM

2장. 객체 생성과 파괴

  • 1. 생성자 대신 정적 팩터리 메서드를 고려하라
  • 2. 생성자에 매개변수가 많다면 빌더를 고려하라
  • 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라
  • 4. 인스턴스화를 막으려거든 private 생성자를 사용하라
  • 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라
  • 6. 불필요한 객체 생성을 피하라
  • 7. 다 쓴 객체 참조를 해제하라
  • 8. finalizer와 cleaner 사용을 피하라
  • 9. try-finally보다는 try-with-resources를 사용하라

3장. 모든 객체의 공통 메서드

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

4장. 클래스와 인터페이스


5장. 제네릭

  • 26. 로 타입은 사용하지 말라
  • 27. 비검사 경고를 제거하라
  • 28. 배열보다는 리스트를 사용하라
  • 29. 이왕이면 제네릭 타입으로 만들라
  • 30. 이왕이면 제네릭 메서드로 만들라
  • 31. 한정적 와일드카드를 사용해 API 유연성을 높이라
  • 32. 제네릭과 가변인수를 함께 쓸 때는 신중하라
  • 33. 타입 안전 이종 컨테이너를 고려하라

6장. 열거 타입과 애너테이션


7장. 람다와 스트림

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

8장. 메서드


9장. 일반적인 프로그래밍 원칙


10장. 예외

  • 69. 예외는 진짜 예외 상황에만 사용하라
  • 70. 복구할 수 있는 상황에는 검사 예외를, 프로그래밍 오류에는 런타임 예외를 사용하라
  • 71. 필요 없는 검사 예외 사용은 피하라
  • 72. 표준 예외를 사용하라
  • 73. 추상화 수준에 맞는 예외를 던지라
  • 74. 메서드가 던지는 모든 예외를 문서화하라
  • 75. 예외의 상세 메시지에 실패 관련 정보를 담으라
  • 76. 가능한 한 실패 원자적으로 만들라
  • 77. 예외를 무시하지 말라

11장. 동시성


12장. 직렬화

진행 방식

  • 매주 일요일 오후 9시 스터디 진행
  • 매 스터디마다 1인당 Item 1개씩 발표를 진행, 매 주마다 총 Item 4개씩 공부합니다. (Item 분량에 따라 유동적으로 갯수 결정, 통상적으로 4개)
  • 스터디가 끝나고 다음 스터디에 발표할 Item을 정합니다.
  • 매 스터디 전날 자정까지 발표 자료를 PR로 올립니다.
  • 발표가 끝나고 질문 시간을 갖습니다.
  • 질문과 그에 대한 답은 Issues를 통해서 남깁니다.
  • 발표나 자료에 대해서 궁금한 내용을 남겨주세요.

  • 각자 맡은 부분에 대해서 자료 업로드는 챕터 - 아이템 번호 의 구조로 남깁니다.
  • 이슈 작성시 [ItemXX] ~~ 의 구조로 합니다.
  • 발표 순서는 Item의 번호대로 합니다.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published