일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 에러
- 매핑
- Head First Design Pattern
- Design Pattern
- Eclipse
- 회고
- JPA
- 독서
- spring
- Java
- 후기
- javascript
- 알고리즘
- 독서리뷰
- 이펙티브자바
- 오라클
- Oracle
- study
- math
- 인코딩
- 카카오톡1차
- 우아한테크코스
- 자바
- 람다
- 인프런
- 공부
- 인강리뷰
- Singleton
- 디자인패턴
- 프로그래머스
- Today
- Total
목록2020/05 (4)
Lee's Grow up
해당 내용은 모던 자바 인 액션의 내용을 참고해서 작성하였습니다. 스트림 스트림은 람다와 마찬가지로 자바8에서 추가된 기능이다. 여기서 스트림이란, 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소로 정의할 수 있다. 스트림과 컬렉션 스트림도 컬렉션과 마찬가지로 연속된 값 집합의 인터페이스를 제공한다. 단 데이터를 언제 계산하느냐가 컬렉션과 스트림의 가장 큰 차이. 컬렉션은 현재 자료구조가 포함하는 모든 값을 메모리에 저장하는 자료구조이다. 그 후, 계산이 가능하다. 그러나 스트림의 경우 요청할 때만 요소를 계산하는 고정된 자료구조이다. 이를 동영상으로 비유하면, 컬렉션은 동영상을 모두 다운로드 후에 볼 수 있고, 스트림의 경우 전체가 아닌 해당 구간만 다운받아서 볼 수 있는 스트리밍 서비스가 ..
해당 내용은 모던 자바 인 액션을 참고해서 작성한 내용입니다. 람다란 무엇인가 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 람다 표현식에는 이름은 없지만, 파라미터나 리스트, 바디, 반환 형식, 발생할 수 있는 예외 리스트는 가질 수 있다. 이러한 람다는 아래 4가지의 특징을 가진다. 익명 : 메서드와 다르게 이름이 없으므로 익명이라고 표현한다. 함수 : 람다는 메서드처럼 클래스에 종속되지 않아 함수라고 부른다. 전달 : 람다 표현식을 메서드의 인수로 전달하거나 변수로 저장 가능 간결성 : 많은 코드를 줄일 수 있다. 아래는 람다의 기본 구조이다 (Member m1, Member m2) -> m1.getName().compareTo(m2.getName()); 위 예..
요구사항의 변화 소비자의 요구사항은 언제든지 변할 수 있기 때문에, 변화에 조금 더 유연한 방식이 필요하게 되었다. 예를 들어, 처음에는 성이 'LEE'인 사람들만 추출해주는 되는 프로그램이 있다고 가정했을 때, 갑자기 소비자가 성이 'LEE'이고, 나이가 28살 이상인 사람들의 리스트를 추출해주세요. 라고 요구사항이 변경 될 경우 어떠한 방법으로 해결할 수 있는지 예제를 통해 알아보겠습니다. 해당 내용은 Mordern Java in Action 책의 내용을 참고하여 작성하였습니다. 1. 이름에서 성을 기준으로 필터링 첫 요구사항처럼 멤버 리스트에서 성이 LEE인 사람들을 필터링 하는 코드를 아래처럼 작성할 수 있습니다. public static List filterByLas..
지네릭스(Generics) 지네릭스는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어든다. 쉽게 말해 타입을 명시함으로써 타입에 대한 안정성과, 번거로운 형변환을 줄여주는 기능이다. 그리고 지네릭은 클래스와, 메소드에 선언이 가능하다. 지네릭 클래스 Java의 지네릭 클래스인 ArrayList 클래스를 참고해보자 내용은 Oracle 홈페이지의 JDK 11의 API의 내용입니다. public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable { // ..