
📌 객체와 클래스 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고 하며, 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다. 객체 = 속성(멤버변수) + 기능(메서드) 변수 : 하나의 데이터를 저장할 수 있는 공간 클래스 영역에서 선언 클래스 변수 : static 멤버변수, 클래스가 메모리에 올라갈 때 생성되며 모든 인스턴스가 공통된 저장공간을 갖는다.(공유) 멤버변수 : 인스턴스변수, 인스턴스가 생성될 때 생성되며 인스턴스마다 독립적인 저장공간을 갖는다. 클래스 영역 이외의 영역에서 선언 지역변수 : 멤버변수를 제외한 변수, 변수 선언문이 수행될 때 생성된다. 배열 : 같은 종류의 여러 데이터를 하나의 집합으로 저장할 수 있는 공간 구조체 : 서로 관련된 여러 데이터들을 종류에 관계없..

✏️ Item 7 : 다 쓴 객체 참조를 해제하라 다 사용한 객체는 null 처리(참조 해제)해 메모리 누수가 발생하지 않도록 조심해야한다. 다 사용한 객체를 null 처리하면 실수로 해당 객체를 사용하는 것을 막을 수 있다는 장점이 있다. 메모리 누수에 주의 필요한 상황 & 해결 방법 1. 자기 메모리를 직접 관리하는 클래스 2. 캐시 - 캐시 외부에서 키를 참조하는 동안만 엔트리가 살아있는 캐시가 필요하면 WeakHashMap을 사용한다. - 시간이 지나수록 엔트리 가치를 떨어뜨리는 방식을 사용할 때는 백그라운드 스레드로 엔트리를 청소하거나, 새 엔트리를 추가할 떄 엔트리를 청소해줘야 한다. 3. 리스너, 콜백 - 콜백을 약한 참조로 저장한다. (WeakHashMap에 키로 저장) WeakHashMa..

✏️ Item 4 : 인스턴스화를 막으려거든 private 생성자를 사용하라 정적 메서드와 정적 필드만을 담은 클래스와 같은 유틸리티 클래스를 만들때는 private 생성자로 인스턴스화를 막아주는 것이 좋다. 추상 클래스로 만드는 것으로는 인스턴스화를 막을 수 없다. private 생성자를 사용하면 상속을 불가능하게 만드는 효과도 있다. ✏️ Item 5 : 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 여러 자원에 의존하는 객체는 유연하지 않고, 테스트하기 어려운 경우가 많다. 이럴 때는 인스턴스를 생성할 때 생성자에 필요한 자원을 넘겨주는 것과 같은 의존 객체 주입 패턴을 사용하는 것이 좋다. (생성자에 자원 팩터리를 넘겨주는 방법도 있다) 여러 클라이언트가 의존 객체들을 안심하고 공유할 수 ..
- Total
- Today
- Yesterday
- 자바의 정석
- JpaRepository
- 고아 객체
- @Modifying
- JPA
- 스프링
- JavaScript
- jQuery
- C# 문법
- Spring
- DataAnnotation
- c#
- 다이내믹 프록시
- spring boot
- orphanRemoval
- 준영속
- Nullable
- Java
- SpringBoot
- 스프링MVC
- 빌더 패턴
- OWIN
- MSSQL
- Effective Java
- 토비의 스프링
- 스프링 부트 테스트
- uploadfive
- default interface
- ASP.NET
- 영속성
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |