자바에서는 전통적으로 자원을 닫고자 할 때 close() 메소드를 사용하여 닫는 경우가 다반사이다. 하지만 개발자들은 누구나 다 실수를 하기 마련이므로 close를 하지 않는 경우가 발생할 수 있다. 이런 경우 심각하게는 성능상 이슈가 발생할 수 있다는 사실을 알아야 한다. 이런 경우를 대비하여 Java에서는 2가지 방법을 제시하고 있다. try-finally try-with-resources(Java 7 이후) 먼저 try-finally 부터 살펴보자. try-finally static String firstLineOfFile(String path) throws IOException { BufferedReader br = new BufferedReader(new FileReader(path)); try..
많은 클래스들은 하나 이상의 자원에 의존하고 있다. 예를 통해 살펴보자. 보통 맞춤법 검사기(SpellChecker)는 사전(Lexicon)에 의존하고 있다. 정적 유틸리티 클래스와 싱글턴을 활용한 맞춤법 검사기 그럼 아이템03에서 언급한 싱글턴과 아이템04에서 언급한 정적 유틸리티 클래스을 활용하여 소스를 구성해보자. //아이템 03_싱글턴 public class SpellChecker { private static final Lexicon dictionary = ...; //사전에 의존 private SpellChecker(){} public static SpellChecker INSTANCE = new SpellChecker(...); //싱글턴 활용 public static boolean isVa..
지난 포스팅 때, 책을 그저 적기만 한 것 같아 다시 한번 포스팅을 시작했다.. 생성자와 정적 팩터리 메서드 보통 클래스의 인스턴스는 public 생성자를 활용하여 생성한다. 그런데 클래스 자체는 생성자와 별도로 아래와 같은 정적 팩토리 메소드를 제공할 수 있다. public static int testMethod() { return 0; } 위에서 설명한 바와 같이 클래스에서는 클라이언트에게 public 생성자를 제공해주지만 이 뿐만 아니라 정적 팩토리 메소드도 제공해줄 수 있다. //public 생성자 public class MyBook { public MyBook() {} } //static factory method public class MyBook { private MyBook() {} pub..
- Total
- Today
- Yesterday
- Effective Java
- 이펙티브 자바
- @Lazy
- 빌더 패턴
- springboot
- 팩토리 메소드 패턴
- 빈 순환 참조
- java
- Spring
- try with resources
- 스프링부트
- 자바8
- java8
- ifPresent
- flatMap
- mustache
- 김영한
- jdk버전
- effectivejava
- 인프런
- 생성자
- 정적팩터리메서드
- JPA
- package-private
- try catch finally
- junit
- 이펙티브자바
- 연관관계
- 점층적 생성 패턴
- 복사 팩토리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |