객체를 생성할 때 사용되는 기법 중 하나이다. Factory 이름에서 유추 할 수 있듯이 인스턴스를 생성하는 패턴인 팩토리 패턴 에서도 사용이 된다.Spring에서는 주로 Layer 간 데이터를 Converting 할 때 사용되고 주로 of 라는 이름이 많이 사용이 된
싱글턴을 만드는 방법 1 : static final public static 멤버가 final 필드인 방식 외부에서 Elvis.INSTANCE 로 객체를 가져올 수 있다. 장점 해당 클래스가 싱글턴임이 API 에 드러난다. 간결하다 문제점 리플렉션을 이용하면
잘못된 예제isEmailValid() 를 만든 개발자가 퇴사를 하고 후에, 다른 개발자가 getPattern() 을 만들어 인스턴스화를 해버리려는 상황이 발생할 수 있다. private PatternUtil(){} 로 private 생성자를 만들어 이런 상황을 방지해
@Configuration 을 선언한 클래스를 예시로 들어본다.잘못된 예시좋은 예시properties를 주입하여 위의 코드를 변경하였다application.yml생성자를 통해 리소스를 주입하면 TestCode 작성시 Injection 하기 편하다.각 나라마다 전화번호
똑같은 기능의 객체를 여러번 생성하기보다는 객체 하나를 재사용하는 편이 낫다.String 인스턴스를 매번 새로 만드는 코드 이므로, 앱 내부에서 String 인스턴스가 수백만 개 가 만들어질 수 있다.\[Item1] Constructor 대신 Static Factory
나쁜 예제책에서 pop() 을 실행했을 때 Size를 줄여도 Array는 그대로이다.즉 참조는 그대로 이기 때문에 Object는 살아있는 상태이다.이점메모리 누수를 막을 수 있을 뿐 아니라,만약 null 처리 한 참조를 실수로 사용하려 하면 프로그램은 즉시 \`Null
종료자라고 한다.JVM이 특정 인스턴스를 가비지 수집해야 한다고 판단되면 filnalize가 호출된다.java9 에서부터는 deprecated 됐다. → 사용하지 말라는 말이다.GC 가 finalize 를 호출하는 시간은 정확히 알 수 없다. GC가 언제 수행되는지 알
Object의 일반 규약을 어기게 되기 때문이고,hashCode를 재정의 하지 않으면 hashMap, hashSet 을 사용하였을 때 문제를 일으킨다.equals 가 사용하는 정보가 변경되지 않는다면 hashCode 를 여러 번 호출해도 동일 hash 값을 반환해야 한
java 8 이후로 인터페이스에 디폴트 메소드를 추가가 가능해짐특히 Collectioin Interface에 다수의 디폴트 메소드가 추가됨디폴트 메소드를 선언하면, 인터페이스 구현체에 디폴트 메서드를 정의하지 않으면 디폴트 구현이 사용된다.Collection 인터페이스