effective java 4

[Youtube][이팩티브 자바] #7 불필요한 객체 레퍼런스를 정리하자

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 주제 7 : 더이상 쓰지 않는 개체 레퍼런스는 없애자 메모리 직접 관리 자바에 GC(가비지 콜렉터)가 있기 때문에 메모리 관리에 대해 신경쓰지 않아도 될거라고 생각하기 쉽지만, 그렇지 않다. 다음 코드를 살펴보자. // Can you spot the "memory leak"? public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { // 초기화 할때 16만큼 만든다. this.elements = ..

Programming/Java 2020.05.24

[Youtube][이팩티브 자바] #6 불필요한 객체를 만들지 말자

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 주제 6 : 불필요한 객체를 만들지 말자. 기능적으로 동일한 객체를 새로 만드는 대신 객체 하나를 재사용하는 것이 대부분 적절하다. 재사용하면 더 빠르고 있어보인다(new라는 코드를 안써서..?). 불변객체는 항상 재사용할 수 있다. 문자열 객체 생성 자바의 문자열 String을 new로 생상하면 항상 새로운 객체를 만들게 된다. 다음가 같이 String 객체를 생성하는 것이 올바르다. public class StringTest { public static void main(String[] args) { String s1 = new String("log"); String s2 = "log";..

Programming/Java 2020.05.23

[Youtube][이팩티브 자바] #3 싱글톤을 만드는 여러가지 방법 그중에 최선은?

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 주제 3: private 생성자 또는 enum 타입을 사용해서 싱글톤으로 만들 것. 오직 한 인스턴스만 만드는 클래스를 싱글톤이라 부른다. 보통 함수 같은 Stateless 객체 또는 본질적으로 유일한 시스템 컴포넌트를 그렇게 만든다. 싱글톤은 패턴의 이름. 애플리케이션을 통틀어서 패턴에 인스턴스가 하나만 사용되는 것. 싱글톤을 사용하는 클라이언트 코드를 테스트 하는게 어렵다. 싱글톤이 인터페이스를 구현한게 아니라면 mock으로 교체하는게 어렵기 때문이다. 싱글톤으로 만드는 두가지 방법이 있는데, 두 방법 모두 생성자를 prirvate으로 만들고 public static 멤버를 사용해서 유일..

Programming/Java 2020.05.06

[Youtube][이팩티브 자바] #2 생성자 매개변수가 너무 많아? 빌더 패턴을 써 봐

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 주제 2: 생성자 매개 변수가 많은 경우에 빌더 패턴 사용을 권장 static 팩토리 메소드와 public 생성자 모두 매개변수가 많이 필요한 경우에 불편해진다. NutritiaonFatc 라는 클래스를 예를 들고있다. 해당 클래스는 몇몇 반드시 필요한 빌드(반드시 셋팅이 되어야하는..)와 부가적인 필드(셋팅이 되지 않아도 되는..)를 가질 수 있는데, 그런 경우에 필수적인 매개변수를 생성자에 부가적인 필드를 하나씩 추가하여 여러 생성자를 만들 수 있다. 해결책 1: 생성자 public class NutritionFacts { private int servingSize; private int..

Programming/Java 2020.05.06