String buffer vs builder
-
String 객체는 불변, 변할 때마다 객체 생성
-
Builder 가변, 동기화 X
StringBuilder sb = new StringBuilder("asdf"); sb.append("qwer"); println(sb);
-
Buffer 가변, 동기화 O
StringBuffer sb = new StringBuffer("asdf"); sb.append("qwer"); println(sb);
filler. Interceptor순서
출처 : goddaehee.tistory.com/154
- Interceptor와 Filter는 Servlet 단위에서 실행된다. <> 반면 AOP는 메소드 앞에 Proxy패턴의 형태로 실행된다.
- 실행순서를 보면 Filter가 가장 밖에 있고 그안에 Interceptor, 그안에 AOP가 있는 형태이다.
- 따라서 요청이 들어오면 Filter → Interceptor → AOP → Interceptor → Filter 순으로 거치게 된다.
- 서버를 실행시켜 서블릿이 올라오는 동안에 init이 실행되고, 그 후 doFilter가 실행된다.
- 컨트롤러에 들어가기 전 preHandler가 실행된다
- 컨트롤러에서 나와 postHandler, after Completion, doFilter 순으로 진행이 된다.
- 서블릿 종료 시 destroy가 실행된다.
Bean 생성 주기
-
Spring Container 시작 → 객체 생성 → 의존 설정 → 초기화 → 소멸
-
Init → Set property →
JPA N+1 언제 발생, 어떻게 해결
Equal, Hashcode
-
가능한 경우,
Equal = true, Hashcode = false
Equal = false, Hashcode = true -
Equal : 객체 내용 비교
-
Hashcode : 객체 참조 위치 비교
JVM
Hashtable, Hash Map
-
공통점 : Map 구현체, <key, value>
차이점 : 동기화 지원-
Hashtable : 동기화 지원 (ConcurrentHashMap 사용 추천)
Hashtable<MessageDto, Integer> messageDtoMap = new Hashtable<MessageDto, Integer >();
-
HashMap : 동기화 미지원
Map<MessageDto, Integer> messageDtoMap = new HashMap<MessageDto, Integer >();
-
Thread-safe
728x90
반응형
'IT > 타이탄의 도구' 카테고리의 다른 글
MacBook Air M1 사용 후기 (0) | 2021.01.01 |
---|---|
MacBook Air 2020 M1 (0) | 2020.12.25 |
클린 아키텍처 - 개방폐쇄원칙(OCP) (0) | 2020.11.17 |
AI Lecture (0) | 2020.10.24 |
Install - Windows Service (0) | 2020.10.24 |