Today I Learned
- 자바 어노테이션
- final 키워드
- 오버로딩(overloading)과 오버라이딩(overriding)
- Error와 Exception의 차이
- BufferedReader & BufferedWriter
- == 와 equals()의 차이
- JVM 구조와 자바의 실행방식
- GC의 개념 및 동작원리
- Primitive type과 Reference type의 차이
- String literal 과 String object의 차이
- String과 StringBuilder와 StringBuffer
- 메모리 누수와 static
- call by value와 call by reference
- float와 double의 차이점과 BigDecimal
- 자바의 hashcode는 무엇이고, 어디에 사용할까?
- try-with-resource
- 로깅 시 System.out.println()을 쓰면 안 되는 이유와 로깅 프레임워크
- volatile 키워드
- Priority Queue(우선순위 큐)와 힙(heap)
- ArrayList의 특징과 주요 메소드의 시간복잡도
- HashMap은 어떻게 동작할까?
- synchronized를 이용한 동기화와 락의 단위
- 가시성과 원자성
- Double-Checked Locking
- Atomic과 CAS 알고리즘
- Concurrent 패키지의 atomic과 locks
- ConcurrentHashMap과 SynchronizedMap의 특징과 차이점
- I/O의 stream과 buffer
- Comparable과 Comparator의 차이점
- Interface와 abstract class 용도의 차이
- 서블릿(servlet)과 WAS(Web Application Server)
- 자바의 직렬화와 역직렬화
- 객체 지향 프로그래밍(OOP)