java8
-
Callable과 FutureJAVA/JAVA8 관련 2022. 5. 28. 17:39
Callable - Runnable과 유사하지만 작업의 결과를 받을 수 있다. (return) Callabel 관련 메서드 get() - 블록킹 콜이다. - 타임아웃을 설정할 수 있다. - 아래 예제의 경우 Started!!!을 출력하고 Callable 작업이 완료 된 이후(2초 Thread.sleep) End!!!를 출력한다. isDone() - 작업을 종료 했으면 true, 종료하지 못했으면 false를 리턴한다. public class CallabeAndFuture { public static void main(String[] args) throws ExecutionException, InterruptedException { ExecutorService executorService = Executo..
-
Date 와 Time 소개JAVA/JAVA8 관련 2022. 5. 15. 14:56
자바 8에 새로운 날짜와 시간 API가 생긴 이유 Date 클래스의 문제 1. 그전까지 사용하던 java.util.Date 클래스는 mutable 하기 때문에 thead safe하지 않다. 2. 클래스 이름이 명확하지 않다. Date인데 시간까지 다룬다. 3. 버그 발생할 여지가 많다. (타입 안정성이 없고, 월이 0부터 시작한다거나..) 4. 날짜 시간 처리가 복잡한 애플리케이션에서는 보통 Joda Time을 쓰곤했다. 1. Mutable하여 Thread Safe하지 않은 부분 public class DateThread { public static void main(String[] args) { Date date = new Date(); long time = date.getTime(); System.o..
-
[더 자바 8] 람다 표현식JAVA/JAVA8 관련 2022. 2. 6. 00:50
람다 (인자 리스트) -> (반디) //인자 // 바디(한줄일때는 바디 {} 생략 가능) Supplier get10 = ()->10; System.out.println(get10.get()); Supplier get11 = () ->{11}; System.out.println(get11.get()); 인자 리스트 인자가 없을 때 : {} 인자가 한개일 때 : (one) 또는 one 인자가 여러개 일때 : (one, two) 인자의 타입은 생략 가능, 컴파일러가 추론하지만 명시할 수도 있다. 변수 캡처(Variable Capture) 로컬 변수 캡처 final 이거나 effective final인 경우에만 참조할 수 있다. 그렇지 않을 경우 concurrency 문제가 생길 수 있어서 컴파일 방지가 된다...