일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 인텐트
- java 8
- TinyMCE
- 자바
- 안드로이드 AVD
- 청주
- CSS
- 주님의교회
- Intent
- 프로그래밍
- Java
- Android
- 게시판
- 회원가입
- Spring
- #청주주님의교회
- 글쓰기
- 에디터
- 영성
- Selector
- 웹개발
- jQuery
- 생명주기
- androidstudio
- Activity
- 제이쿼리
- 아이콘
- Resources
- 안드로이드
- JavaScript
- Today
- Total
공부하는 블로그
JAVA 8 Programming 시작하기 본문
도래: 프로그래밍 패러다임의 변화
절차지향언어( 개발 어려움, 유지보수 어려움 ) ->
함수지향언어( C언어..등등 ) ->
객체지향언어( 실세계와 같은 객체를 만듬 , C++, JAVA, C#..) / 웹의 발명으로 객체지향언어가 발전 ->
IOT급부상으로 -- >> 함수지향언어(F#, R, Scala,Python,Kotlin): 호출만 함, 빠름 , 데이터분석할 때 사용
JAVA가 함수지향언어로 변했다.
---Lambda Expression --
질문) Java에서 Method를 Parameter로 전달할 수 있다. ( X )
지금까지 배운 JAVA는 항상 객체지향이다.
interface Do(); --> new Do() { // implement정의
}
람다(Lambda)란?
람다 미적분학 학계에서 개발할 시스템에서 유래함.
메소드에게 전달할 수 있는 익명 클래스를 함수로 단순화 시킨 것.
람다의 특징
익명 : 보통의 메소드와 달리 이름이 없다.
함수 : 특정 클래스에 종속되지 않아 함수라 부른다.
전달 : 람다 표현식을 메서드의 인자로 전달하거나 변수로 저장할 수 있다.
간결성 : 익명 클래스처럼 자질구레한 코드를 구현할 필요가 없다.
람다의 적용
타입을 추론해서 들어간다.
람다의 구성
람다 파라미터
Compartor의 compare 메소드의 파라미터 (두 명의 사원)
화살표 ( -> )
람다의 파라미터 리스트와 바디를 구분함.
람다 바디
두 명의 사원 번호를 구분함. 람다의 반환값에 해당하는 표현식.
함수형 인터페이스
람다는 함수형 인터페이스를 파라미터로 받는 메소드에게만 사용할 수 있다.
함수형 인터페이스는 오직 하나의 추상메소드만 지정되어 있는 인터페이스를 말한다.
Comparator 인터페이스의 추상메소드는 int compare(T o1, T 02); 하나.
함수형 인터페이스의 종류
Predicate<T> : 파라미터 하나를 전달받아, boolean을 반환하는 함수형 인터페이스
BiPredicate<L, R> : 파라미터 L과 R을 전달받아 boolean을 반환하는 함수형 인터페이스
Consumer<T> : 파라미터 하나를 전달받아, void를 반환하는 함수형 인터페이스
BiConsumer<T, U> 파라미터 T와 U를 전달받아 void를 반환하는 함수형 인터페이스
Function<T, R> : 파라미터 T를 전달받아 R을 반환하는 함수형 인터페이스
BiFunction<T, U, R> : 파라미터 T와 U를 전달받아 R을 반환하는 함수형 인터페이스
//
abstact 클래스는 lambda사용못함
'Develop > JAVA' 카테고리의 다른 글
JAVA 8 메소드 레퍼런스 (0) | 2017.10.31 |
---|---|
JAVA 8 프로그래밍 예제 1 (0) | 2017.10.31 |
생성자 멤버변수 예제 (0) | 2017.09.04 |
JAVA 생성자 (0) | 2017.09.04 |
자바(Java)〃접근 제한자 private/ protected/ public / default (0) | 2017.09.01 |