일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BFS
- 코테
- IntelliJ
- 백준
- 알고리즘
- 다이나믹프로그래밍
- join
- 깊이우선탐색
- Spring
- Greedy
- java
- db
- 너비우선탐색
- 그리디알고리즘
- DFS
- select
- mybatis
- SQL
- 피보나치
- springboot
- 데이터베이스
- 우선순위큐
- 탐욕법
- 정렬
- mariaDB
- 프로그래머스
- 이펙티브자바
- Database
- Effective Java
- DP
- Today
- Total
목록분류 전체보기 (248)
땀두 블로그

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 10. equals는 일반 규약을 지켜 재정의하라 equals 메소드는 일부 다른 개체가 이 개체와 "동일한"지 여부를 나타내는 메소드이다. https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html equals 메소드는 재정의하기 쉬워보이지만 종종 발생하는 문제점이 있다. equals를 재정의하면 안되는 경우 각 인스턴스가 본질적으로 고유할 경우 Thread와 같이 값을 표현하는 게 아닌 동작하는 개체를 표현하는 클래스일 경우 인스턴스의 논리적 동치성을 검사할 일이 없을 경우 논리적 동치(L..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 9. try-finally보다는 try-with-resource를 사용하라. 자바에서는 close() 메소드를 직접 호출해서 닫아줘야 하는 자원들이 많다. 이를 제대로 해주지 않으면 성능 문제로 이어질 수 있다. 보통은 자원이 제대로 닫힘을 보장하는 수단으로 try-finally 구문을 많이 사용했는데, 자원을 여러 개 사용하게 되는 경우에 하나의 예외 때문에 다른 예외 정보를 찾을 수 없게 되는 문제가 생길 수 있다. 이러한 문제를 해결하기 위해 자바 7버전에서는 try-with-resources구문을 만들었다. 이는 AutoCloseable 인..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 8. finalizer와 cleaner 사용을 피하라 finalizer 객체 소멸자인 finalize() 메소드를 사용하는 것을 말하는 것으로 JVM(Java Virtual Machine)이 실행하는 가비지 컬렉션이 수행될 때 더 이상 사용하지 않는 자원에 대한 정리 작업을 진행하기 위해 호출되는 종료자 메소드 cleaner 자바 9 버전에서 도입된 소멸자로 생성된 Cleaner 가 더 이상 사용되지 않을 때 등록된 스레드에서 정의된 클린 작업을 수행한다. finalizer와 cleaner 사용을 피해야 하는 이유 즉시 수행됨을 보장하지 않는다. ..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 7. 다 쓴 객체 참조를 해제하라. 자바는 C/C++과는 다르게 가비지 컬렉터 덕분에 메모리 관리를 따로 안해주어도 된다는 장점이 있다. 하지만 이 또한 메모리를 절대적으로 관리해주는 것은 아니다. 책에 나온 예시 코드이다. import java.util.Arrays; public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { this.elements =..

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다. Item 6. 불필요한 객체 생성을 피하라. 똑같은 기능의 객체는 매번 생성하기 보다는 재사용하는 것이 빠르고 효율적이다. 예를 들어서 아래와 같은 객체 생성이 있다고 하자. String s1 = new String("string"); String s2 = "string"; 위의 문장은 실행될 때마다 String 인스턴스를 생성하기 때문에 쓸모없는 인스턴스를 여러 번 생성하여 효율적이지 못하다. 그 밑에 작성된 코드는 하나의 인스턴스를 사용하기 때문에 재사용성이 보장된다. String interning과 String pooling의 차이 https://ic..