슬라이싱슬라이싱 메서드는 필요한 데이터만 가져오는 데 유용하다.필요한 데이터만 가져오기 때문에 스트림을 끝까지 읽지 않고도 필요한 데이터를 처리할 수 있어 처리 시간을 단축하거나 메모리 사용량을 줄일 수 있다.이때 원하는 데이터를 얻기 위해서는 슬라이싱을 적용할 데이터는 이미 정렬되어 있어야 한다. takeWhile프레디케이트가 처음 참이 되는 지점부터 이후의 요소를 반환한다.dropWhile프레디케이트가 처음 거짓이 되는 지점까지 발견된 요소를 버린다.limit주어진 값 이하의 크기를 갖는 새로운 스트림을 반환한다.스트림이 정렬되어 있으면 최대 요소 n개를 반환할 수 있다.skip처음 n개 요소를 제외한 스트림을 반환한다.n개 이하의 요소를 포함하는 스트림에 skip을 호출하면 빈 스트림이 반환된다. ..
자바
모던 자바 인 액션 4~6장을 보며 정리한 내용 스트림이란?데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소.자바 8에 추가된 선언형 API 스트림과 컬렉션컬렉션// 컬렉션: 모든 데이터를 메모리에 미리 준비List collection = Arrays.asList(1, 2, 3, 4, 5);List collectionResult = new ArrayList();for(int i : collection) { // 데이터가 계산된다. if(i % 2 == 0) { // 데이터가 추가된다. 메모리에 올라간다. collectionResult.add(i); }}컬렉션은 데이터를 저장하기 위한 자료구조이다.컬렉션에 추가되는 데이터는 메모리에 올라가게 된다.그렇기에 ..

프로세스와 스레드프로세스프로세스는 독립된 실행 환경을 가지고 있고 일반적으로 비공개 기본 런타임 리소스 집합을 가지고 있으며, 특히 각 프로세스에는 자체 메모리 공간이 있다.프로세스는 종종 프로그램 또는 애플리케이션과 동의어로 간주된다. 그러나 사용자가 하나의 애플리케이션으로 보는 것은 실제로는 협력하는 프로세스의 집합일 수 있다. 대부분의 Java 가상 머신 구현은 단일 프로세스로 실행된다. 스레드스레드는 경량 프로세스라고도 한다. 프로세스와 스레드 모두 실행 환경을 제공하지만 새 스레드를 만드는 것이 새 프로세스를 만드는 것보다 더 적은 리소스를 필요로 한다. 스레드는 프로세스 내에 존재하며 모든 프로세스에는 적어도 하나가 있다. 스레드는 메모리와 오픈된 파일 등 프로세스의 리소스를 공유한다. 이는..