- 호출 시점에 생성되어 불필요한 메모리 사용을 줄일 수 있다.
- 디버깅이 어렵다(익명함수기에 위치를 찾기가 어려움)
- 너무 많은 사용은 가독성을 저하
- 성능 문제가 생길 수 있다.
| Interface | Method | Description |
|---|---|---|
| Runnable | void run() | 스레드에 의해 실행될 수 있는 작업 |
| Callable | V call() throws Exception | 결과를 봔환하거나 예외를 발생시킬 수 있는 작업 |
| Consumer | void accept(T t)void | 하나의 매개변수를 받아들이며 결과를 반환하지 않음 |
| Supplier | T get()T | 매개 변수는 없지만 결과를 반환 |
| Function | R apply(T t) | 하나의 매개 변수를 받아들이고 결과를 반환 |
| Predicate | boolean test(T t)boolean | 하나의 매개 변수를 받아들여 boolean 결과를 반환 |
| Comparable | int compareTo(T o) | 자기 자신과 매개 변수를 비교하여 순서를 결정 |
| Comparator | int compare(T o1, T o2) | 매개 변수를 비교하여 순서를 결정 |
작업이 붙은 애들은 스레드에서 사용되며, 비동기 작업이나 콜백이 필요한 작업에서 많이 사용됨.
| Interface | Method | Description |
|---|---|---|
BiConsumer<T, U> | void accept(T t, U u) | 두 개의 매개 변수를 받아 결과를 반환하지 않음 |
BiFunction<T,U,R> | R apply(T t, U u)R로 반환형 한정 | 두 개의 매개 변수를 받아 결과를 반환 |
BinaryOperator<T> | T apply(T t1, T t2) | 동일 타입의 두 매개 변수를 받아 동일 타입의 결과를 반환 |
BiPredicate<T,U> | boolean test(T t,U u) | 두 개의 매개 변수를 받아 booelan 결과를 반환 |