1. 애너테이션(annotation)
- 정보 전달을 위한 목적으로 만들어진 문법 요소
- 주석과 비슷. 하지만 주석은 사람에게 정보를 전달, 애너테이션은 다른 프로그램에게 전달
(1) 표준 애너테이션 : JDK에 내장된 일반적인 애너테이션
ex) @Override, @Deprecated, @SuppressWarnings, @FunctionalInterface 등이 있음
(2) 메타 애너테이션 : 다른 애너테이션을 정의할 때 사용함
ex) @Target, @Documented, @Inherited, @Retention 등
2. 람다식(Lambda Expression) : 함수형 프로그래밍 기법을 지원하는 자바의 문법요소
- 메서드를 하나의 식으로 표현
- 장점 : 코드를 간결하고 명확하게 표현할 수 있음
- 반환타입과 이름 생략 가능 (익명함수 anonymous function)
<예시>
int sum(int x, int y) {
return x + y;
}
(1) 메서드 바디에 실행문 하나일 때 중괄호 및 return 생략 가능
ex) (int x, int y) -> x + y
(2) 매개변수 타입을 함수형 인터페이스를 통해 유추 가능할 때 매개변수 타입 생략 가능
ex) (x, y) -> x + y
- 람다식은 이름이 없기 때문에 익명 객체라 할 수 있음
- 익명객체는 익명 클래스를 통해 만들 수 있음
- 익명 클래스 : 객체의 선언과 생성을 동시에 함. 하나의 객체 생성 및 단 한 번 사용(일회용)
3. 스트림(Stream)
- 배열 및 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있게 해주는 반복자
- 생성, 중간연산, 최종연산 세 단계로 구성
- 원본 데이터 소스를 변경하지 않음(read only)
- 일회용(ontime only)
- 내부반복자
* 오늘도 역시 위염을 달고 살았습니다. 카페인이 부족하니 머리가 아프더라고요. 낮에는 두통으로 인해 이해하기 어려웠는데 진통제의 힘을 빌려 다시 보니 이해가 되네요. 내일 페어분과의 실습 전에 한 번 더 훑고 가야겠다는 생각이 듭니다. 아, 오늘 배운 것은 차차 익숙해져서 잘 사용하면 정말 간결하고, 눈에 확 들어오는 코드를 짤 수 있겠다는 생각이 들더라고요!
*목요일 하루만 더 버티면 3일간의 휴일을 갖게 됩니다. 저에게는 다행스러운 순간입니다. 부족한 것을 채울 시간이 생긴 셈이거든요.
'코딩하는 코커두드 > 자바, 스프링 백엔드 과정' 카테고리의 다른 글
Day 19 _ 자바 심화 학습 (20230508) (0) | 2023.05.09 |
---|---|
Day 18 _ 스트림 실습 페어프로그래밍 (20230504) (0) | 2023.05.05 |
Day 16 _ 처음으로 불참한 날 _ 위경련 조심 (20230502) (0) | 2023.05.03 |
Day 13 _ 패스트푸드 주문 키오스크 만들기 실습 (20230427) (0) | 2023.04.28 |
Day 11 _ 객체지향 심화 (부제 : 장염 조심) (0) | 2023.04.26 |