분류 전체보기373 [Effective Java] 아이템6: 불필요한 객체 생성을 피하라 Chapter 02: 객체 생성과 파괴객체를 만들어야 할 때와 만들지 말아야 할 때를 구분하는 법올바른 객체 생성 방법에 대한 설명불필요한 객체 생성을 피하라똑같은 기능의 객체를 새로 만드는 대신 개체 하나를 재사용하는 것이 대부분 적절하다. 재사용을 하면 성능적인 측면에서 더 빠르다. 특히 불변 객체는 언제든 재사용할 수 있다.문자열 객체 생성 public class StringTest { public static void main(String[] args) { String name1 = "jeu"; String name2 = "jeu"; System.out.println(name1 == name2); // true String str1 = new.. 2024. 10. 26. [Effective Java] 아이템5: 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 Chapter 02: 객체 생성과 파괴객체를 만들어야 할 때와 만들지 말아야 할 때를 구분하는 법올바른 객체 생성 방법에 대한 설명잘못된 사례1많은 클래스는 하나 이상의 자원에 의존한다. 책에서는 예시로 맞춤법 검사기(Spell Checker)와 맞춤법 검사기가 의존하는 사전(Dictionary)을 예시로 들고 있다. 맞춤법 검사기가 정적 유틸리티 클래스 구조를 가진다면?public interface Lexicon {}public class KoreanDictionary implements Lexicon{}public class SpellChecker { private static final Lexicon dictionary = new KoreanDictionary(); private Spe.. 2024. 10. 26. [Effective Java] 아이템4: 인스턴스화를 막으려거든 private 생성자를 사용하라 Chapter 02: 객체 생성과 파괴객체를 만들어야 할 때와 만들지 말아야 할 때를 구분하는 법올바른 객체 생성 방법에 대한 설명유틸성 클래스 단순히 정적 메소드와 정적 필드를 담은 클래스 이런 클래스는 인스턴스화를 할 필요가 없다 → 인스턴스화를 막아보자. 이런 유틸 성격을 가지는 클래스는 자바 / 스프링 쉽게 찾아볼 수 있다. java.lang.Math java.util.Arraysjava.util.Collections Collections는 특정 인터페이스의 구현하는 객체들을 생성해 주는 정적 팩토리 메소드를 모아놓았다. 사용자는 해당 구현체를 몰라도 사용할 수 있다는 관점에서 알아야 하는 개념적인 무게가 줄었다고 볼 수 있다. public final class Math { private .. 2024. 10. 26. [JAVA] 프로그래머스 LEVEL3 선입 선출 스케줄링 https://school.programmers.co.kr/learn/courses/30/lessons/12920 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr코딩테스트 연습 > 연습문제 > 선입 선출 스케줄링 난이도: LEVEL3알고리즘 유형: 이분 탐색(매개 변수 탐색) 시간 초과 코드 import java.util.*;class Solution { public int solution(int n, int[] cores) { int answer = 0; // 0: 코어 번호 1: 처리 가능한 시간 2: 처리하는데 걸리는 시간 PriorityQueue p.. 2024. 10. 25. [Effective Java] 아이템3: private 생성자나 열거 타입으로 싱글턴임을 보증하라 Chapter 02: 객체 생성과 파괴객체를 만들어야 할 때와 만들지 말아야 할 때를 구분하는 법올바른 객체 생성 방법에 대한 설명싱글톤 패턴 이펙티브 자바 아이템3 에서 나오는 대부분의 내용을 정리한 적 있었다. 이번엔 복습 차원으로 정리하지 않았던 내용에 대해서만 간단하게 정리하겠다. 해당 링크에는 지금 내용에 없는 내용들이 많다. 1. 직렬화시 Serializable 선언과 주의점 2. 멀티 스레딩에 안전한 여러 싱글톤 생성 방법3. 이른 초기화 방식과 지연 초기화 방식 4. enum 디자인 패턴: 싱글톤 패턴 정리 [Design Pattern] 싱글톤(Singleton) 패턴싱글톤 (Singleton) 패턴인스턴스를 오직 한개만 제공하는 클래스 싱글톤(Singleton) 패턴은 특정 클래스의 .. 2024. 10. 25. [Design Pattern] 컴포짓 (Composite) 패턴 컴포짓 (Composite) 패턴그룹 전체와 개별 객체를 동일하게 처리할 수 있는 패턴 (Part-Whole Hierarchy)클라이언트 입장에서는 전체나 부분이나 모두 동일한 컴포넌트로 인식할 수 있는 계층 구조를 만든다.Component ├── Leaf └── Composite ├── Leaf └── Composite ├── Leaf └── Leaf 컴포짓 (Composite) 패턴 Before@AllArgsConstructor@Getterpublic class Item { private String name; private int price;}public class Bag { private List ite.. 2024. 10. 24. 이전 1 ··· 3 4 5 6 7 8 9 ··· 63 다음