Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Spring boot
- L2 통신
- 메가바이트스쿨
- DNS
- ssh tunneling
- dns forward
- 개발자취업부트캠프
- MegabyteSchool
- Layer 2
- linux domain
- 내일배움카드
- ARP
- k8s
- MariaDB
- RDB
- systemd-resolved
- 패스트캠퍼스
- linux dns
- reclaim
- 127.0.0.53
- PV
- L2 통작
- CoreDNS
- 국비지원교육
- PVC
Archives
- Today
- Total
hoonii2
[Java] 07. Lambda Expression 본문
1. Lambda Expression
람다는 익명 함수이자 ( Anonymous Class 와 유사 ) 함수를 정의하는 간단한 방법으로 다른 함수에 인자를 전달하고 처리하는 방식을 정의할 수 있다.
2. Anonymous Class vs Lambda Expression
- Anonymous Class 는 인스턴스 생성을 하지만 , Lambda 는 매번 생성되지 않고 Heap 의 Permanent 영역에 한 번 저장된다
- Anonymous Class 내에 데이터가 저장되어 밀접하게 동작하지만, Lambda 는 데이터와 별개로 동작
3. Shadowing
[ Anonymous Class ]
public class 둘러싼Class {
private String firstName = "first";
public void 메소드() {
함수형인터페이스<String, String> AnonymousInstance = new 함수형인터페이스<String, String>() {
@Override
public String 함수형메소드(String subName) {
// this.firstName 으론 불가능 , this 는 익명Class 인스턴스를 의미
return 둘러싼Class.this.firstName + subName;
}
}
}
}
[ Lambda ]
public class 둘러싼Class {
private String firstName = "first";
public void 메소드() {
함수형인터페이스 <String,String> 인스턴스 = subName -> {
return firstName + subName; // this 는 둘러싼 Class 를 의미, 그냥 firstName 과this.firstName 과 동일
}
}
}
4. 문법
- 람다는 익명의 코드 블록이다.
- 아래 2개 코드는 동일하게 동작한다.
Array.sort(numbers, (o1,o2) -> o1.compareTo(o2));
Compator<Integer> com = (o1,o2) -> o1.compareTo(o2);
Array.sort(numbers, com);
- 함수형 인터페이스는 언제든 람다로 교체 가능
Interface 함수형인터페이스 {
리턴타입 메소드 (매개변수);
}
(매개변수) -> { body }
매개변수 -> { body }
- Return 타입은 컴파일러에서 유추할 수 있기에 생략 가능
- 매개변수가 하나라면 괄호 생략 가능
'개념 공부 > (개발) 01. Java' 카테고리의 다른 글
[Java] 07-3. 기본 제공 함수형 인터페이스 (0) | 2022.12.23 |
---|---|
[Java] 07-2. Lambda Method Reference (0) | 2022.12.16 |
[Java] 06. Local Class / Anonymous Class (0) | 2022.12.02 |
[Java] 05. Interface (0) | 2022.11.25 |
[Java] 04. Primitive/Reference Data Type, Wrapper Class (0) | 2022.11.18 |
Comments