| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- thymeleaf
- lombok
- interceptor
- JPA
- collapse
- cache
- JVM
- effective java
- 타임리프
- Garbage Collection
- 배낭문제
- 파이썬
- @Transactional
- 클린아키텍처
- 자바
- BFS
- Java
- EffectiveJava
- Spring Security
- 동시성처리
- EntityGraph
- 알고리즘
- TDD
- AOP
- 캐시
- Transactional
- 코딩테스트
- 이펙티브자바
- spring
- 멱등성
- Today
- Total
목록EffectiveJava (27)
Jinnie devlog
C, C++와 같은 언어는 메모리를 직접 관리해야 하지만, 자바는 가비지 컬렉터를 갖추어서 다 쓴 객체를 알아서 회수한다. 자칫 메모리 관리에 더 이상 신경 쓰지 않아도 된다고 오해할 수 있는데, 사실이 아니다. 예제 public class Stack{ private Object[] elements; private int size = 0; private Stack(){ elements = new Object[DEFAULT_INITIAL_COPACITY]; } public Object pop(){ if (size==0) throw new EmptyStackException(); return elements[--size]; } private void ensureCapacity(){ if (elements.l..
인스턴스화를 막는 이유 정적 메서드와 정적 필드만을 담은 클래스를 만들고 싶을 때가 있다. 예를 들어 java.lang.Math, java.util.Arrays 처럼 기본 타입 값이나 배열 관련 메서드들을 모아놓을 수 있다. 이러한 성격의 클래스는 인스턴스화를 막는게 일반적이다. 인스턴스를 만든다는 것은 객체마다 다른 속성값을 가지고 있을 때 의미가 있다. 정적 필드와 메소드로만 구성된 클래스는 객체를 만드는것이 의미가 없다. 심지어 메모리상 낭비를 가져온다. 따라서 정적인 방식으로 만들어진 클래스는 인스턴스화를 막는것이 옳다. 추상 클래스로 만드는 것으로는 인스턴스화를 막을 수 없다. 하위 클래스를 만들어 인스턴스화하면 그만이기 때문이다. 이를 본 사용자는 상속해서 쓰라는 뜻으로 오해할 수 있으니 더 ..
싱글턴(Singleton)이란? 싱글턴이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 싱글턴패턴이란? 생성자의 호출이 반복적으로 이루어져도 실제로 생성되는 객체는 최초 생성된 객체를 반환함을 의미한다. public class Animal{ private static Animal animals = null; private Animals(){} public static Animals getInstance(){ if(animals == null){ animals = new Animals(); } return animals; } } Animals라는 클래스가 있고 private static을 사용하여 최초로 메모리를 한번만 할당한다. 싱글턴 사용하는 이유 객체 생성으로 재 사용이 가능하기 때문에 ..