[Java] 스트림(정렬, 루핑, 매칭, 기본 집계, 커스텀 집계, 수집, 병렬 처리)
Language/Java2023. 8. 7. 00:38[Java] 스트림(정렬, 루핑, 매칭, 기본 집계, 커스텀 집계, 수집, 병렬 처리)

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 요소 정렬 정렬은 요소를 오름차순 또는 내림차순으로 정렬하는 중간 처리 기능이다. 요소를 정렬하는 메소드는 아래와 같다. Comparable 구현 객체의 정렬 스트림의 요소가 객체일 경우 객체가 Comparable을 구현하고 있어야만 sorted() 메소드를 사용하여 정렬할 수 있다. 만약 내림차순으로 정렬하고 싶다면 Comparator.reverseOrder() 메소드가 리턴하는 Comparator를 매개값으로 제공하면 된다. 아래의 더보기를 누르면 예제 코드를 볼 수 있다. 더보기 Student.java public class Student implements Comparable ..

[Java] 스트림(스트림 개념, 스트림 얻기, 필터링, 매핑)
Language/Java2023. 8. 6. 00:53[Java] 스트림(스트림 개념, 스트림 얻기, 필터링, 매핑)

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 스트림이란 Java 8부터 컬렉션 및 배열의 요소를 반복 처리하기 위해 스트림을 사용할 수 있다. 스트림은 요소들이 하나씩 흘러가면서 처리된다는 의미를 가지고 있다. Stream은 Iterator와 비슷한 반복자이지만, 아래와 같은 차이점을 가지고 있다. - 내부 반복자이므로 처리 속도가 빠르고 병렬 처리에 효율적이다. (내부에서 멀티 스레딩으로 처리) - 람다식으로 다양한 요소 처리를 정의할 수 있다. - 중간 처리와 최종 처리를 수행하도록 파이프 라인을 형성할 수 있다.(필터링 후 원하는 데이터만 추출 및 가공) List 컬렉션의 stream() 메소드로 Stream 객체를 얻고,..

[Java] 람다식
Language/Java2023. 8. 5. 00:42[Java] 람다식

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 람다식의 개념 자바는 함수형 프로그래밍을 위해 Java 8부터 람다식을 지원한다. 자바는 객체지향 프로그래밍 언어로써 객체가 없이 함수가 존재할 수 없다. 클래스 내부에 무조건 함수가 있어야 하기 때문에 자바에서는 함수를 함수라 부르지 않고 메소드라고 부른다. 함수형 프로그래밍 함수형 프로그래밍이란 함수를 정의하고 이 함수를 데이터 처리부로 보내 데이터를 처리하는 기법을 가진다. 데이터 처리부는 데이터만 가지고 있을 뿐, 처리 방법이 정해져 있지 않아 외부에서 제공된 함수에 의존한다. 즉, 함수에 어떤 처리코드가 적혀있느냐에 따라 해당 데이터를 가지고 발생하는 실행결과가 달라질 수 있..

[Java] 컬렉션 프레임워크(LIFO & FIFO,  동기화된 컬렉션, 수정할 수 없는 컬렉션)
Language/Java2023. 8. 4. 00:52[Java] 컬렉션 프레임워크(LIFO & FIFO, 동기화된 컬렉션, 수정할 수 없는 컬렉션)

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. LIFO & FIFO LIFO는 스택(Stack) 자료구조를 뜻하고, FIFO는 큐(Queue) 자료구조를 뜻한다. 컬렉션 프레임워크는 LIFO 자료구조를 제공하는 스택 클래스와 FIFO 자료구조를 제공하는 큐 인터페이스를 제공하고 있다. Stack Stack 클래스는 LIFO 자료구조를 구현한 클래스이다. 아래는 Stack 객체를 생성하는 방법이다. Stack stack = new Stack(); Stack stack = new Stack(); Stack 클래스는 Vector 클래스를 상속했다. 따라서 Stack 객체는 동기화 처리가 되어있다. 즉, 멀티스레딩 환경에서 안전하게 처리..

[Java] 컬렉션 프레임워크(List, Set, Map)
Language/Java2023. 8. 3. 00:54[Java] 컬렉션 프레임워크(List, Set, Map)

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 컬렉션 프레임워크(Collection Framework)자바는 널리 알려져 있는 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제 검색할 수 있도록 관련된 인터페이스와 클래스들을 java.util 패키지에 포함시켜 놓았다.이들을 총칭해서 컬렉션 프레임워크라고 부른다.컬렉션 프레임워크는 몇 가지 인터페이스를 통해서 다양한 컬렉션 클래스를 이용할 수 있도록 설계되어 있다.주요 인터페이스로는 List, Set, Map이 있다.컬렉션 프레임워크배열은 길이가 정해지면 바꿀 수 없었지만, 컬렉션 프레임워크는 길이가 가변적이다.컬렉션 프레임워크는 인터페이스이기 때문에 인터페이스에 정의된 메소드들..

[Java] 데몬 스레드와 스레드풀
Language/Java2023. 8. 2. 00:15[Java] 데몬 스레드와 스레드풀

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 데몬 스레드(Daemon Thread) 데몬 스레드는 주 스레드의 작업을 돕는 보조적인 역할을 수행하는 스레드이다. 주 스레드가 종료되면 데몬 스레드도 따라서 자동으로 종료된다. 스레드를 데몬으로 만들기 위해서는 주 스레드가 데몬이 될 스레드의 setDaemon(true)를 호출하면 된다. 주 스레드와 메인 스레드는 같을 수도 있고 다를 수도 있다. 메인 스레드에서, 다른 스레드를 데몬 스레드로 설정했다면 메인 스레드는 주 스레드가 된다. 하지만 메인 스레드가 아닌 A 스레드에서, B 스레드를 데몬 스레드로 설정했다면 B 스레드 관점에서는 A 스레드가 주 스레드가 된다. 아래의 코드에..

[Java] 멀티 스레드
Language/Java2023. 8. 1. 00:01[Java] 멀티 스레드

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 2023.06.27 - [컴퓨터 구조 & 운영체제/운영체제] - [운영체제] 스레드(Thread), 멀티 프로세스와 멀티 스레드 [운영체제] 스레드(Thread), 멀티 프로세스와 멀티 스레드 이 글은 혼자 공부하는 컴퓨터 구조 + 운영체제 (저자 : 강민철)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 스레드 이 글에서 다루는 내용은 소프트웨어적 스레드이 rebugs.tistory.com 하나의 프로세스가 두 가지 이상의 작업을 처리할 수 있는 이유는 멀티 스레드가 있기 때문이다. 프로세스의 모든 스레드가 종료가 되어야 프로세스가 종료된다. 하나의 스레드에서 ..

[Java] 제네릭(Generic)
Language/Java2023. 7. 31. 00:02[Java] 제네릭(Generic)

이 게시글은 이것이 자바다(저자 : 신용권, 임경균)의 책과 동영상 강의를 참고하여 개인적으로 정리하는 글임을 알립니다. 제네릭의 개념 제네릭이란 결정되지 않은 타입을 파라미터로 처리하고 실제 사용할 때 파라미터를 구체적인 타입으로 대체시기는 기능이다. 아래의 코드는 Box 클래스에서 결정되지 않은 content의 타입을 T라는 타입 파라미터로 정의한 것이다. public class Box { public T content; } 는 T가 타입 파라미터임을 뜻하는 기호로, 타입이 필요한 자리에 T를 사용할 수 있음을 알려주는 역할을 한다. Box 클래스는 T가 무엇인지 모르지만, Box 객체가 생성될 시점에 다른 타입으로 대체된다는 것을 알고 있다. Box의 내용물로 String 타입을 저장하고 싶으면 아..

image