일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 깃허브
- 프로그래밍
- 공채
- 운영체제
- 세마포어
- 이펙티브 자바
- 정보처리기사
- 디지털
- java
- 신입
- 스프링
- package-private
- 개발
- 뮤텍스
- spring
- IT
- 우리카드
- github
- Public
- 메모리
- CS
- 컴퓨터과학
- OS
- 스터디
- 알고리즘
- 신입사원
- 깃
- Effective Java
- 자바
- 컴퓨터공학
- Today
- Total
목록Java/이펙티브 자바 (23)
주니어 개발자 성장기
간혹 인스턴스화를 막는 것이 바람직한 유틸리티성 클래스들이 있다. public static 메서드를 가진 클래스들 로직을 도와주는 성격의 클래스 ex) org.springframework.util.StringUtils, java.lang.Math, java.util.Arrays, java.util.Collections와 같은 유틸리티 클래스가 있다. 유틸리티 클래스는 public static 메서드만 제공하기 때문에 인스턴스화가 필요하지 않으며, 인스턴스를 통한 메서드 호출은 오히려 인스턴스 메서드와 정적 메서드간의 혼동을 불러 일으킨다. 따라서, 인스턴스화를 방지하는 것이 바람직하다. 인스턴스화를 방지하기 위해서 abstract로 클래스를 만들 수 있다. 하지만 이 방법은 인스턴스화를 방지할 수 없다...
싱글톤을 사용하는 경우 크게 2가지 경우에 싱글톤을 사용하면 된다. 싱글톤을 사용하면 좋은 경우 DB 커넥션 등 인스턴스 생성 비용이 비싼 경우 반드시 사용해야 하는 경우 환경설정 등 애플리케이션 전반에 하나만 존재해야 하는 경우 Private 생성자 이펙티브 자바에서는 private 생성자를 기본으로 싱글톤을 구현하는 방법을 소개하고 있다. 그 중 첫 번째 방법인 public static final 멤버 변수를 사용하는 방법은 다음과 같다. public static final Elvis INSTANCE = new Elvis(); 즉, 필요 할 때마다 Elvis. INSTANCE를 직접 호출하면 된다. 문제점 테스트하기 어려운 구조 싱글톤 클래스를 사용하는 클라이언트 코드의 테스트가 어려워진다. 인터페이..
점층적 생성자 패턴 정적 팩토리, 생성자 모두 선택적 매개 변수가 많을 경우, 이를 핸들링 하기위해서 프로그래머들은 전통적으로 점층적 생성자 패턴(telescoping constructor pattern)을 사용해왔다. public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate) { this.servingSize = servingSize; this.servings = servings; this.calories = calories; this.fat = fat; this.sodium = sodium; this.carbohydrate = carbohydrate; } public Nu..
개요 클라이언트 코드가 어떤 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자이다. 하지만 이 방식은 단점이 존재하기 때문에 대안으로 정적 팩터리 메서드를 생각해 볼 수 있다. 정적 팩터리 메서드? 정적 팩터리 메서드는 간단하게 생성자와 같이 클래스의 인스턴스를 반환하는 역할을 한다. 영어로는 static factory methods public class CoffeeBean { // 원두 원산지 private String region; // 원두 품종 private String variety; // 원두 로스팅 시각 private LocalDateTime roastedAt; private CoffeeBean(String region, String variety, LocalDateTime ro..
개요 이펙티브 자바 3판과 백기선의 이펙티브 자바 완벽 공략 강의(인프런)로 공부한 내용을 정리하는 스터디 방식 일주일에 1번씩 화상 미팅으로 발표를 하며 발표자는 모임 당일 사다리타기로 정해진다. 매주 3개의 아이템을 정리해서 강의 수강내역을 노션 페이지에 인증하고 요약글을 블로그에 업로드해야 한다. 일정 6.26(월)부터 약 한달간 진행한다. 기대하는 점 자바 코딩의 Best Practice를 배운다. 자바를 효율적, 안정적으로 사용할 수 있는 법을 배운다. 왜 해당 방식을 사용해야 하는 지 파악함으로써 자바 동작의 원리를 배운다.