본문 바로가기

PROGRAMMING LANGUAGE/자바

(4)
이펙티브 자바 2. 빌더를 고려하라 1. 생성자를 이용한 초기화 생성자로 넘겨주고 싶은 매개변수가 많고 기본값으로 지정하고 싶은 필드가 많을 수 있다. 이 때 생성자를 체이닝을 이용하여 초기화 할 수 있다. public class NutritionFacts { private final int servingSize; private final int servings; private final int calories; private final int fat; private final int sodium; private final int carbohydrate; public NutritionFacts(int servingSize, int servings){ this(servingSize, servings, 0); } public Nutrition..
이펙티브 자바 (1).생성자 대신 정적 팩토리 메서드를 고려하라 정적 팩터리 메서드의 장점 1.이름을 가질 수 있다. 생성자는 이름을 가질 수 없기 때문에 생성자 매개변수로 같은 데이터 타입의 다른 필드를 주고 싶을 때 불편하다. 이 때 이름을 가질 수 있는 정적 팩터리 메서드를 사용할 수 있다. public class Order { private boolean prime; private boolean urgent; private Product product; /* public Order(Product product, boolean prime){ this.product = product; this.prime = prime; } public Order(boolean urgent, Product product){ this.product = product; this.urg..
컬렉션 프레임워크 ArrayList, LinkedList, Vector ArrayList ArrayList는 List 인터페이스 구현 클래스로, ArrayList에 객체를 추가하면 객체가 인덱스로 관리된다. 배열은 생성할 때 크기가 고정되고 사용 중에 크기를 변경할 수 없지만, ArrayList는 저장 용량을 초과한 객체들이 들어오면 자동적으로 저장 용량이 늘어난다. 구조 기본적인 사용 방법 // ArrayList 생성 방법 List list = new ArrayList(); // ArrayList 객체 추가 list.add("어레이리스트"); // ArrayList 객체 가져오기 String name = list.get(0); 특징 ArrayList의 특정 인덱스에 있는 값을 삭제하면 오른쪽에 있는 값들이 한칸 씩 왼쪽으로 이동해야 한다. 삽입시에는 반대로 오른쪽으로 이동..
제네릭의 사용 이유와 종류 개요 자바 5부터 제네릭타입이 새로 추가되었다. 제네릭 타입을 이용함으로써 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있게 되었다. 제네릭은 클래스와 인터페이스, 메소드를 정의할 때 타입을 파라미터로 사용할 수 있다. 제네릭을 사용하는 이유 컴파일 시 강한 타입 체크를 할 수 있다. 자바 컴파일러는 코드에서 잘못 사용된 타입 때문에 발생하는 문제점을 제거하기 위해서 제네릭 코드에 대해 강한 타입 체크를 한다. 런타임 에러보다는 컴파일 에러가 좋다! 런타임 에러는 프로그램 실행 중에 에러가 나는것이다. 운영중인 애플리케이션을 수정해야 하기 때문에 그것보다는 컴파일 에러가 나는 것이 개발중에 에러를 고칠 수 있다는 장점이 있다. List list = new ArrayList(); lis..