Effective Java 스터디 장점이름을 가질 수 있다.생성자로만 봤을때 상황에 따라 반환될 객체 특성을 알기 어려움.호출될 때마다 인스턴스를 새로 생성하지 않아도 된다.불변 클래스는 인스턴스를 미리 만들어 놓거나 새로 생성한 인스턴스를 캐싱하여 재활용. (fly
Effective Java 스터디생성자를 private 으로 감추고, 접근수단으로는 public static 멤버를 이용.getInstance() 는 항상 같은 객체의 참조를 반환함. 원소가 하나인 열거타입을 선언하여 싱글턴 생성.
Effective Java 스터디의도치 않은 인스턴스 생성을 막아보자.(자동생성되는 매개변수 없는 public생성자)명시적 생성자가 private이니 클래스 바깥에서는 접근할 수 없다.그런데..생성자가 분명 존재하는데 호출할 수는 없어 직관적이지 않다.적절한 주석이 필
Effective Java 스터디의존 객체 주입 패턴은 아주 단순하여수많은 프로그래머가 이 방식에 이름이 있다는 사실도 모른 채 사용해왔다. 클래스가 내부적으로 하나 이상의 자원에 의존하고, 그 자원이 클래스 동작에 영향을 준다면싱글턴과 정적 유틸리티 클래스는 사용하
Effective java 스터디똑같은 기능의 객체를 매번 생성하기보다는객체 하나를 재사용하는 면이 나을 떄가 많다.인스턴스를 static final 필드로 지정하고 이름을 지어 코드의 의미를 잘 전달할 수 있다. 오토박싱 : 기본 타입과 박싱된 기본 타입을 섞어 쓸
Effective Java 스터디 equals 메서드를 재정의해야 할 때 논리적 동치성을 확인해야 할 때 (Integer, String 같은 값 클래스)equals가 논리적 동치성을 확인하도록 재정의해두면, 그 인스턴스는 값을비교하길 원하는 프로그래머의 기대에
Effective Java 스터디 자바의 접근 제어 메커니즘은 클래스, 인터페이스, 멤버의 접근성을 명시한다.각 요소의 접근성은 그 요소가 선언된 위치와 접근제한자로 정해진다.이 접근제한자를 제대로 활용하는 것이 정보 은닉의 핵심이다.기본 원칙은 모든 클래스와 멤버의
Effective Java 스터디상속은 캡슐화를 깨뜨린다. 상위 클래스와 하위 클래스를 모두 같은 프로그래머가 통제하는 패키지 안에서라면 상속도 안전한 방법이다. 하지만 일반적인 구체 클래스를 패키지 경계를 넘어,즉 다른 패키지의 구체 클래스를 상속하는 일은 위
Effective Java 스터디자바가 제공하는 다중 구현 메커니즘은 인터페이스와 추상 클래스, 이 두 가지다.둘의 가장 큰 차이는 추상 클래스가 정의한 타입을 구현하는 클래스는반드시 추상 클래스의 하위 클래스가 되어야 한다는 점이다. 믹스인이란 클래스가 구현할 수
Effective Java Study 단점이 많은 태그 달린 클래스는 사용을 지양.클래스 계층구조를 사용하자. 클래스 계층구조 변환방법계층구조의 루트(root)가 될 추상 클래스를 정의하고,태그 값에 따라 동작이 달라지는 메서드들을 루트 클래스의 추상 메서드로 선언