Java

    [Effective Java] Item02. 생성자에 매개변수가 많다면 빌더(Builder)를 고려하라

    Item02. 생성자에 매개변수가 많다면 빌더(Builder)를 고려하라 - 정적 팩터리 메서드와 생성자는 선택적 매개변수가 많을 때 적절히 대응하기가 어렵다. - 이를 보완하기 위해 많은 개발자들은 다음과 같은 방식을 사용했다. 1. 점층적 생성자 패턴(telescoping constructor pattern) - 필수 매개변수만 받는 생성자 / 필수 매개변수 + 선택적 매개변수 1개를 받는 생성자 / 필수 매개변수 + 선택 매개변수 2개를 받는 생성자 / ... 와 같이 점층적인 형태의 생성자를 여러 개 늘리는 방식 - 단점 : 선택적 매개변수에도 기본값을 지정해야한다, 매개변수 개수가 많아지면 코드 작성, 읽기에 어렵다(각 값의 의미가 뭔지 모름) 2. 자바빈즈 패턴(JavaBeans pattern..

    [Effective Java] Item01. 생성자 대신 정적 팩터리 메서드를 고려하라

    Item01. 생성자 대신 정적 팩터리 메서드를 고려하라 클래스가 인스턴스를 얻는 전통적인 수단은 public 생성자이다. public class Foo { private String name; // 생성자를 통한 인스턴스 생성 public Foo(String name) { this.name = name; } } 하지만 전통적인 수단인 생성자와 별도로 정적 팩터리 메서드(static factory method)를 통해서도 인스턴스를 생성할 수 있다. 해당 방식은 단점도 존재하지만, 장점이 많으므로 쓰임새에 따라 유리할 경우 사용하는 것이 좋다. public class Foo { private String name; // 생성자를 통한 인스턴스 생성 public Foo(String name) { this...

    [Java] 배열 (Array)

    자바에서 배열의 선언 // 배열의 선언 방식 int[] arr; int arr2[]; type, 변수명 구분 없이 [] 키워드를 넣을 수 있다. 배열의 생성, 초기화 int arr[] = new int[5]; // 크기 5의 int 배열 선언 및 생성 arr[0] = 1; // 배열의 초기화 arr[1] = 2; arr[2] = 3; int arr2[] = new int[]{1, 2, 3} // 크기 3의 int 배열 선언, 생성 및 초기화 int arr3[] = {1, 2, 3} // 위와 같은 배열을 가짐. new 키워드를 통해 배열 객체를 생성한다. 이 때 대괄호([]) 안에 배열의 사이즈를 넣는다. 값의 초기화, 변경은 일반적인 배열의 형태와 같이 arr[index] = value 형태로 가능하다..

    [Java] 자바의 특징

    Java의 특징 1. 운영체제에 독립적으로 동작 *자바가상머신(JVM, Java Virtual Machine)을 통해 JVM이 설치되어 있는 OS에서는 모두 자바로 작성된 프로그램이 실행 가능하다. 그래서 자바 언어를 Write once, run anywhere (한 번 작성하면, 어디서나 실행된다.)로 표현하기도 한다. * 자바로 작성된 프로그램을 실행 할 수 있는 가상의 컴퓨터이다. JVM의 경우는 기존의 하드웨어로 구성된 컴퓨터를 소프트웨어적으로 구현한 것으로, 자바로 작성된 프로그램은 모두 이 JVM을 통해 실행되므로 자바 프로그램을 실행하기 위해서는 JVM이 설치되어 있어야 한다. (JVM에 대한 내용은 추후 자세히 다뤄보도록 하자.) 2. 객체지향언어 (OOP, Object - Oriented..