본문 바로가기

이펙티브자바

(2)
[Effective java] item 28. 배열보다는 리스트를 사용하라 2021-02-17 글 이사 우테코 Level 1 로또 미션에서 "배열 대신 ArrayList를 사용한다."가 요구사항에 들어있었다. 왜 배열대신 ArrayList를 사용하라는 것일까? 찾아보니 이펙티브 자바에서도 그 내용이 나와 있어서 스스로의 물음에 답하는 내용을 정리하려 한다. Array(배열) vs ArrayList(리스트) 들어가기에 앞서 이펙티브 자바를 보기 전 Array과 ArrayList의 차이점을 간단히 적어본다. Array(배열) 사이즈가 정적인 데이터 구조이다. 일단 생성되면 크기를 변경할 수 없다. 원시 타입과 객체 모두 원소로 포함할 수 있다. for 또는 for-each 루프를 통해서 반복된다. 길이에 대해 length 변수를 사용한다. Generic(제네릭)을 사용 할 수 없다..
[Effective java] item 1. 생성자 대신 정적 팩터리 메서드를 고려하라 2021-02-14 글 클래스는 생성자와 별도로 정적 팩터리 메서드(static factory method)를 제공할 수 있다. 디자인 패턴의 팩터리 메서드와는 다르다. 장점 1. 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자만으로는 반환될 객체의 특성을 제대로 설명하지 못한다. 하지만 정적 팩터리 메서드는 반한될 객체의 특성을 메소드명을 통해 드러낼 수 있다. Exmaple - 생성자 public Cars(List names) { validateNonDuplicatedNames(names); for (String name : names) { cars.add(new Car(name)); } } private void validateNonDuplicatedNames(final List names..