책/이펙티브 자바

@Test public void 문자열_비교() { // when String hello = "hello"; String hello2 = "hello"; //TODO 이 방법은 권장하지 않습니다. String hello3 = new String("hello"); //then assertThat(hello == hello3).isFalse(); assertThat(hello.equals(hello2)).isTrue(); assertThat(hello == hello2).isTrue(); assertThat(hello == hello2).isTrue(); } 동일한 기능을 함에도 여러번 생성하는 경우들이 있는데 하나씩 알아보자 1️⃣ 문자열 📌 문자열 생성 방법 String hello1 = "hello"; ..
애플리케이션을 만들다보면 어떤 인스턴스가 애플리케이션에서 하나만 있어야 하는 경우가 있다. 객체의 인스턴스가 오직 1개만 생성되는 디자인 패턴인 싱글턴 패턴을 이용할 수 있다. 대규모 트래픽을 처리할 수 있도록 spring에서 Application Context에 의해 등록된 빈은 싱글톤으로 관리하고 있다. 더보기 요청 1번에 5개의 객체가 만들어진다고 하고, 1초에 500번 요청이 온다고 하면 초당 2500개의 새로운 객체가 생성된다. 아무리 GC의 성능이 좋아졌다 하더라도 부하가 걸리면 감당이 힘들 것이다. 이러한 문제를 해결하고자 빈을 싱글톤 스코프로 관리하여 1개의 요청이 왔을 때 여러 쓰레드가 빈을 공유해 처리하도록 하였다. 출처: https://mangkyu.tistory.com/151 [Ma..
생성자와 정적 팩터리는 매개변수가 많을 때 적절히 대응하기 어렵다. public class NutritionFacts { private final int servingSize; // 필수 private final int servings; // 필수 private final int calories; // 선택 private final int fat; // 선택 private final int sodium; // 선택 private final int carbohydrate; // 선택 public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate ) { this.servingSize ..
객체를 생성하는 방법 public 생성자 public 클래스 이름 () { } 정적 팩터리 메서드 (Boolean에서 사용하는 정적 펙터리 메서드) 디자인 패턴에서의 팩터리 메서드와 다르다. public static Boolean valueOf(boolean b) { return (b ? TRUE : FALSE); } 생성자 말고 정적 팩터리 메서드를 썻을 때 장점과 단점을 알아보자 장점 1. 이름을 가질 수 있다. 이름을 통해서 반환될 객체의 특성을 쉽게 묘사할 수 있다. 생성자, 정적 팩터리 메서드 중에서 “값이 소수인 BigInteger를 반환한다.”라는 뜻을 명확하게 표현하는지 생각해보면 이름의 장점을 얻을 수 있다. public BigInteger(int bitLength, int certain..
uhanuu
'책/이펙티브 자바' 카테고리의 글 목록