일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- JPA
- 자바ORM표준JPA프로그래밍
- 운영체제
- Hibernate
- 영속성컨텍스트
- 디자인패턴
- 이펙티브자바
- 딥러닝
- 네트워크
- 알고리즘
- 장애물인식
- 자바
- Java
- 아두이노
- 파이썬
- cartograhper
- MySQL
- DeepLearning
- 배달로봇
- 포인트클라우드
- 논문리뷰
- persistance context
- 자율주행
- Python
- Database
- 프로그래머스
- Spring Batch
- Jetson
- 자료구조
- 논문
- Today
- Total
목록이펙티브자바 (13)
제리 devlog
자바에서 제공하는 두 가지 객체 소멸자를 제공한다. 1. finalizer 2. cleaner 두 가지 객체 소멸자를 사용하면 c언어처럼 명시적으로 메모리를 해제할 수 있을까? -> 곧바로 메모리를 해제하는 것은 불가능하다. finalizer는 예측할 수 없고 상황에 따라 위험할 수 있어 일반적으로 불필요함. 나름에 쓰임새가 있지만 기본적으로는 쓰지 말아야 한다(자바9부터 deprecated) cleaner는 자바9부터 finalizer를 대신 제시됨. cleaner는 finalizer보다는 덜 위험하지만, 여전히 예측할 수 없고, 느리고, 일반적으로 불필요함 C++에서는 파괴자(destructor)가 존재한다. 특정 객체를 생성하는 생성자와 대척점으로 자원을 회수하는 보편적인 방법. JAVA에서는 가비..
많은 클래스가 하나 이상의 자원에 의존한다. 의존이라는 용어는 spring을 경험해봤다면 흔히 들었을 것이다. 하지만 의존 관계에 대해서 다시한번 짚어보고 자원을 명시하지 말고 의존 객체 주입을 사용하라는 의미를 생각해보자. 의존 관계는 어떤 것인가? 하나의 예시를 보자 public class Car(){ Wheel wheel = new SmallWheel(); public Car(){}; } public class SmallWheel extends Wheel(){ String modelName = "A"; int size = 50; public SmallWheel(){} } 두개의 클래스가있다. Car클래스는 SmallWheel을 입력받아 사용한다. 이때 Car객체는 SmallWheel과 의존 관계가 ..
이번 item은 책 분량상 약 1쪽이 조금 넘는 분량이기 때문에 다루는 내용이 굉장히 간략하다. 따라서 자주 등장했던 static의 개념도 추가로 다뤄 보고자한다. 책의 도입부는 이렇게 시작된다. "단순히 static 메서드와 static 필드만을 담은 클래스를 만들고 싶은 때가 있을 것이다. 객체 지향적으로 사고하지 않는 이들이 종종 남용하는 방식이기에 그리 곱게 보이지는 않지만, 분명히 나름 쓰임새가 있다. 예컨데 java.lang.Math, java.util.Arrays처럼 기본 타입 값이나 배열 관련 메서드들을 모아놓을 수 있다." 여기서 객체 지향적인 사고란 어떤 것을 의미하는지 생각해보기전 static의 특성에 대해 생각해보자. new 키워드를 통해 생성된 객체는 heap영역에 생성되고 GC에..
싱글톤 : 인스턴스를 오직 하나만 생성할 수 있는 클래스 싱글톤 패턴을 왜 사용할까? 인스턴스를 오직 하나만 생성하므로서 객체를 여러번 생성할 필요가 없고 객체를 공유할 수 있음. 스프링에서 관리하는 bean은 싱글톤 패턴으로 만들어져 의존성을 주입할때 동일한 객체를 사용함. DBCP(DataBase Connection Pool)의 경우에도 DB와 애플리케이션을 연결하기위해 매번 객체를 생성하여 관리하는 것보다 최초의 생성된 객체를 재사용하면서 connection을 관리하는게 더 효율적임 싱글톤을 만드는 3가지 방법 첫번째, public static 맴버가 final로 선언된 경우 public class Elvis{ public static final Elvis INSTANCE = new Elvis();..
public class NutritionFacts { private final int servingSize; //(ml, 1회 제공량) 필수 private final int servings; //(회, 총 n회 제공량) 필수 private final int calories; //(1회 제공량당) 선택 private final int fat; //(g/1회 제공량) 선택 private final int sodium; //(g/1회 제공량) 선택 private final int carbohydrate; } 식품 영양정보를 나타내는 class이다. 필드는 총 6가지가 있다. 1. 점층적 생성자 패턴 public class NutritionFacts { private final int servingSize; /..