# Java

- [Readable Code](/studylog/java/readable-code.md)
- [추상화](/studylog/java/readable-code/abstract.md)
- [논리적 사고 흐름](/studylog/java/readable-code/logical_thinking.md)
- [객체지향 이론](/studylog/java/readable-code/oop.md)
- [객체지향 코드 적용하기](/studylog/java/readable-code/oop-code.md)
- [코드 다듬기](/studylog/java/readable-code/_.md)
- [읽기 좋은 코드를 도와줄 조언들](/studylog/java/readable-code/_-_-_-_.md)
- [Java 101](/studylog/java/java-101.md)
- [동일성과 동등성](/studylog/java/java-101/_.md): 비교연산자(==)와 equals 메서드의 차이
- [해시 코드](/studylog/java/java-101/hashcode.md)
- [JVM 이해하기](/studylog/java/java-101/jvm.md): 자바 코드를 작성하며 변수나 객체같은 관리 포인트가 실제 JVM 에 어느 메모리 영역에 위치 하여 동시성 이슈가 발생 여부를 판단하는 근거 기르기
- [가비지 컬렉션](/studylog/java/java-101/_-1.md): JVM 이 어떻게 메모리 관리를 하는지 알아보기
- [자바에서 정렬하는 방법](/studylog/java/java-101/_-_.md)
- [직렬화와 역직렬화](/studylog/java/java-101/serializable.md): Serializable 과 SerialVersionUID 알아보기
- [컬렉션 프레임워크](/studylog/java/java-101/_-2.md): 자바에서 효율적인 자료구조를 사용할 수 있는 컬렉션들을 알아보자
- [제네릭의 기본 이해](/studylog/java/java-101/generic_basic.md): 제네릭이 무엇인지, 왜 제네릭을 사용하는지 그리고 자바는 제네릭을 어떻게 사용하고 있는지 알아보기
- [자바에서 스레드를 조작하는 방법](/studylog/java/java-101/java_thread.md): 자바의 버전이 증가하면서 나날이 발전한 스레드 관리 방법을 알아보기
- [동시성을 벗어나게 해줄 Thread Local](/studylog/java/java-101/java_thread/thread-local.md)
- [Thread 와 Runnable](/studylog/java/java-101/java_thread/thread-runnable.md): 자바 5 이전
- [Future 와 Callable 그리고 스레드 풀](/studylog/java/java-101/java_thread/future-callable.md): 자바 5 버전
- [스레드 풀을 새롭게 디자인하다](/studylog/java/java-101/java_thread/fork-join-pool.md): Java 7
- [Future 를 개선한 CompletableFuture](/studylog/java/java-101/java_thread/future-completablefuture.md): 자바 8 버전
- [런타임 도중 코드를 조작하는 마법, 리플렉션](/studylog/java/java-101/reflection.md): 리플렉션 이해하기
