백기선(인프런 강의)/더 자바, Java 8
-
람다 표현식백기선(인프런 강의)/더 자바, Java 8 2020. 7. 7. 22:38
람다 (인자 리스트) -> {바디} 인자 리스트 인자가 없을 때: () 인자가 한개일 때: (one) 또는 one 인자가 여러개 일 때: (one, two) 인자의 타입은 생략 가능, 컴파일러가 추론(infer)하지만 명시할 수도 있다. (Integer one, Integer two) 바디 화상표 오른쪽에 함수 본문을 정의한다. 여러 줄인 경우에 { }를 사용해서 묶는다. 한 줄인 경우에 생략 가능, return도 생략 가능. 변수 캡처 (Variable Capture) 로컬 변수 캡처 final이거나 effective final 인 경우에만 참조할 수 있다. 그렇지 않을 경우 concurrency 문제가 생길 수 있어서 컴파일가 방지한다. effective final 이것도 역시 자바 8부터 지원하는 ..
-
자바에서 제공하는 함수형 인터페이스백기선(인프런 강의)/더 자바, Java 8 2020. 7. 7. 09:15
Java가 기본으로 제공하는 함수형 인터페이스 java.lang.funcation 패키지 자바에서 미리 정의해둔 자주 사용할만한 함수 인터페이스 Function BiFunction Consumer Supplier Predicate UnaryOperator BinaryOperator Function T 타입을 받아서 R 타입을 리턴하는 함수 인터페이스 R apply(T t) 함수 조합용 메소드 andThen compose BiFunction 두 개의 값(T, U)를 받아서 R 타입을 리턴하는 함수 인터페이스 R apply(T t, U u) Consumer T 타입을 받아서 아무값도 리턴하지 않는 함수 인터페이스 void Accept(T t) 함수 조합용 메소드 andThen Supplier T 타입의 값을..
-
함수형 인터페이스와 람다 표현식백기선(인프런 강의)/더 자바, Java 8 2020. 7. 6. 09:02
함수형 인터페이스(Funtional Interface) 추상 메소드를 딱 하나만 가지고 있는 인터페이스 SAM(Single Abstract Method) 인터페이스 @FunctionalInterface 애노테이션을 가지고 있는 인터페이스 람다 표현식(Lambda Expressions) 함수형 인터페이스의 인스턴스를 만드는 방법으로 쓰일 수 있다. 코드를 줄일 수 있다. 메소드 매개변수, 리턴타입, 변수로 만들어 사용할 수 있다. 자바에서 함수형 프로그래밍 함수를 First class object로 사용할 수 있다. 순수함수(Pure function) 사이드 이펙트를 만들 수 없다.(함수 밖에 있는 값을 변경하지 못한다.) 상태가 없다.(함수 밖에 정의되어있는) 고차 함수(High-Order Fucntio..
-
자바 8 소개백기선(인프런 강의)/더 자바, Java 8 2020. 7. 6. 08:38
자바 8 출시일 : 2014년 3월 현재 자바 개발자 중 약 83%가 사용중 https://www.jetbrains.com/lp/devecosystem-2019/java/ LTS(Long_term-Supprot)와 비-LTS 버전의 차이 비-LTS는 업데이트 제공 기간이 짧다. 비-LTS 배포 주기 6개월 비-LTS 지원 기간은 배포 이후 6개월 LTS 배포 주기 3년(매 6번째 배포판이 LTS가 된다.) LTS 지원 기간은 5년이상이므로 JDK를 제공하느 벤더와 이요한느 서비스에 따라 다르다. 실제 서비스 운영환경(production)에서는 LTS 버전을 권장한다. Moving Java Forward Faster-Mark Reinhold 다음 LTS : 자바 17 매년 3월과 9월에 새버전 배포 주요 ..