synchronized
를 사용하지 않아도 된다.메서드에 코드를 전달하는 기법을 이용하면 새롭고 간결한 방식으로 **동작 파라미터화(Behavior Parameterization)**를 구현할 수 있다.
약간만 다른 두 메서드가 있을 때, 두 메서드를 그대로 유지하는 것 보다 인수를 이용하여 다른 동작을 하도록 하나의 메서드로 합치는 것이 바람직할 수 있다. → 프로그램이 짧고 간결해지며, 불필요한 에러도 줄일 수 있다.
자바 8에서는 이를 간단 명료하게 작성할 수 있다.
메서드에 코드를 전달하는 자바 8 기법은 **함수형 프로그래밍(Functional Style Programming)**에서 위력을 발휘한다.
자바는 처음부터 많은 유용한 라이브러리를 포함하는 잘 설계된 객체지향 언어로 시작했다.
자바는 처음부터 **스레드(Thread)**와 **락(Lock)**을 이용한 소소한 동시성도 지원했다. → 자바의 하드웨어 중립적인 메모리 모델 때문에 멀티코어 프로세서에 병렬적으로 수행되는 스레드는 싱글코어에서의 동작과 달리 예기치 못한 상황을 일으킬 수 있다.
코드를 JVM(Java Virtual Machine) 바이트 코드로 컴파일 하는 특징 때문에 자바는 인터넷 애플릿 프로그램의 주요 언어가 되었다. → 모든 브라우저에서 가상 머신 코드를 지원하는 부분과 연결