일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인프런김영한
- aop
- 자바스터디
- mysql
- 네트워크
- 이펙티브 자바
- 스프링부트와AWS로혼자구현하는웹서비스
- 인프런백기선
- 자료구조
- AWS
- 기술면접
- 자바
- vue.js
- SQL쿡북
- CleanCode
- java
- MariaDB
- react
- 자바예외
- 이펙티브자바
- 인덱스
- 이팩티브 자바
- 알고리즘
- AWS RDS
- 클린코드
- 혼공SQL
- 도메인 주도 개발 시작하기
- jpa
- 알고리즘분석
- DDD
- Today
- Total
목록이팩티브 자바 (4)
기록이 힘이다.
public class TopLine{ //코드 9-1 try-finally - 더 이상 자원을 회수하는 최선의 방책이 아니다! 47쪽 static String firstLineOfFile(String path) throws IOException{ BufferedReader br = new BadBufferedReader(new FileReader(path)); try{ return br.readLine(); }finally{ br.close(); } } public static void main(String[] args) throws IOException{ System.out.println(firstLineOfFile("pom.xml")); } } public class BadBufferedReader..
Finalizer 공격 import java.math. BigDecimal; public class Account { private String accountId; public Account(String accountId){ this.accountId = accountId; if(accountId.equals("푸틴")){ throw new IllegalArgumentException("푸틴은 계정을 막습니다."); //finalizer를 통해 보낼 수 있다 } } public void transfer(BigDecimal amount, String to){ System.out.printf("transfer %f from %s to %s\n", amount, accountId, to); } } public..

p29, 이 패턴의 쓸만한 변형으로 생성자에 자원 팩터리를 넘겨주는 방식이 있다. p29, 자바 8에서 소개한 Supplier 인터페이스가 팩터리를 표현한 완벽한 예다. p29, 한정적 와일드카드 타입을 사용해 팩터리의 타입 매개변수를 제한해야 한다. p29, 팩터리 메소드 패턴 p30, 의존 객체가 많은 경우에 Dagger, Guice, 스프링 같은 의존 객체 주입 프레임워크 도입을 고려할 수 있다. -팩터리 메소드 패턴 구체적으로 어떤 인스턴스를 만들지는 서브 클래스가 정한다. 새로운 product를 제공하는 팩토리를 추가하더라도, 팩토리를 사용하는 클라이언트 코드는 변경할 필요가 없다. -스프링 Ioc