본문 바로가기

Programming/Java

(16)
DAY 101. JAVA - 스트림(Stream) 최종 처리 메소드 종류 ◆ 매칭(Match) - 최종 처리 메소드이다. 결과를 true, false로 리턴한다. - 최종 처리 단계에서 요소들이 특정 조건에 만족하는지 조사하는 기능이다. ◇ allMatch() : 모든 요소들이 매개 값으로 주어진 Predicate의 조건을 만족하는지 조사한다. ◇ anyMatch() : 최소한 한 개의 요소가 매개 값으로 주어진 Predicate의 조건을 만족하는지 조사한다. (하나라도 만족하면 true, false려면 모두 만족하지 않아야 한다.) ◇ noneMatch() : 모든 요소들이 매개 값으로 주어진 Predicate의 조건을 만족하지 않는지를 조사한다. ◆ Aggregate 기본 집계 최종 처리 기능으로 요소들을 처리해서 카운팅, 합계, 평균값, 최대값, 최소값 등과 같이 하나의..
DAY 100. JAVA - 스트림(Stream) 중간 처리 메소드 종류 Stream - 스트림은 자바 8부터 추가된 기능으로 컬렉션(배열)의 저장 요소들을 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자이다. - 스트림은 Iterator와 비슷한 역할을 하지만 람다식으로 요소 처리 코드를 제공할 수 있고, 내부 반복자를 사용해서 병렬 처리(멀티 스레드 활용), 중간 처리, 최종 처리 작업을 수행할 수 있다는 점이 다르다. - 스트림은 컬렉션 요소에 대해서 중간 처리와 최종 처리를 할 수 있다. - 중간 처리에서는 반복, 매핑, 필터링, 정렬 등을 수행한다. - 최종 처리에서는 반복, 카운팅, 평균, 총합 등의 집계 처리를 수행한다. - java.util.stream 패키지에 존재하고 BaseStream 인터페이스를 부모로 해서 자식 인터페이스들이 상속 관계를 이루..
DAY 99. JAVA - 람다식(lambda) 표준 함수적 인터페이스 종류 01. Consumer - Consumer 함수적 인터페이스는 리턴 값이 없는 accept() 추상 메소드를 가지고 있다. - accept() 메소드는 매개 값을 받아서 소비하는 역할만을 한다. 즉, 사용만 하고 리턴 값이 없다. 02. Supplier - Supplier 함수적 인터페이스는 매개 변수가 없고 리턴 값이 있는 getXXX() 메소드를 가지고 있다. - 이 메소드들은 실행 후 호출한 곳으로 데이터를 리턴(공급)하는 역할을 한다. 03. Function - Function 함수적 인터페이스는 매개값과 리턴값이 있는 applyXXX() 메소드를 가지고 있다. - 주로 매개값을 리턴 값으로 매핑(타입 변환)하는 역할을 한다. - T : 매개변수의 타입으로 지정, R : 리턴 타입으로 지정 되는 ..
DAY 98. JAVA - 람다식(lambda) 람다식 ● 정의 - 자바에서 함수적 프로그래밍을 위해서 자바 8부터 람다식을 지원한다. - 람다식은 익명 함수를 생성하기 위한 식으로 객체 지향 언어보다는 함수 지향 언어에 가깝다. - 람다식은 매개 변수를 가지는 함수와 같은 코드 블록이지만 (실제로 실행될 때) 런타임 시에는 인터페이스의 익명 구현 객체를 생성한다. - 자바에서는 함수를 매개변수로 넘길 수 없기 때문에 함수 지향 언어처럼 사용하지만, 실제로는 실행될 때는 익명 구현 객체로 만들어진다. - 람다식을 사용하면 코드가 간결해지고, 컬렉션의 요소를 필터링하거나 매핑해서 원하는 결과를 쉽게 얻을 수 있다. // [표현 방법] ([타입 매개변수, ...]) -> { 실행문; ... }; - "([타입 매개변수, ...])"는 중괄호 블록({})을..
DAY 33. [JAVA] 변수 변수(Variable) 메모리(RAM)에 값을 넣어 기록하기 위한 공간으로 메모리의 일정 부분을 할당 받은 것 (like 상자) 프로그램에 의해 수시로 값이 변한다. 하나의 값만 저장할 수 있다. 변수를 정할 때는 자료형의 타입에 따라 그 크기만큼 메모리 공간을 할당 받아야 한다. 메모리에 값을 기록하려면 변수부터 만들어야 한다. 메모리에 입력 값이 기록되면 그 값을 CPU가 읽어서 연산을 처리한다. 그 계산 결과 값도 메모리에 기록되고 출력 된다. 변수를 사용하면 가독성이 좋아지고, 재사용성 증가로 인해 코드량이 감소하여 유지보수가 용이하다. ※ 변수의 선언이란? : 메모리 공간에 데이터를 저장할 수 있는 공간을 할당하는 것 --> 변수 선언 == 자료형 변수명; ex. 1. 논리형 변수 선언 → bo..
DAY 16. [JAVA] 변수의 형변환(Casting) 종류와 정의 형변환(Casting) 정의 - 값(Data)의 자료형을 바꾸는 것이다. (boolean은 제외한다.) 즉, 데이터의 타입을 바꾸는 것 대입 연산자를 기준으로 왼쪽과 오른쪽은 같은 자료형이어야 한다. 즉, 같은 자료형에 해당하는 값만 대입이 가능하고 다른 자료형의 값을 대입하고자 할 때는 형변환이 필수다. 같은 종류의 자료형만 대입 가능 같은 종류의 자료형만 계산(연산)가능 ex. 10 + 13.5 (X) 계산(연산)의 결과도 같은 종류의 자료형이 나와야 한다. → 이러한 원칙이 지켜지지 않을 경우에 형 변환을 사용한다. 형변환의 예시 (int) 123456789 ▶ (double) 123456789.0 (char) 'A' ▶ (int) 65 (float) 3.14f ▶ (int) 3 형변환을 하고자 하..
DAY 15. [JAVA] 변수와 Static / Heap / Stack 메모리 구조 stack 메모리 => 메소드가 실행되면서 변수가 생성되면 만들어지는 메모리 공간 heap 주소 값을 stack의 변수에 넣어준다.
DAY 1. [JAVA] 상속(Inheritance) / 포함(Composite) 기존의 클래스로 새로운 클래스를 작성하는 것 (== 코드의 재사용) 두 클래스를 부모와 자식으로 관계를 맺어주는 것 class 자식 클래스 extends 부모클래스 { ... } 자손은 조상의 모든 멤버을 상속 받는다. (생성자, 초기화 블럭 제외) 자손의 멤버 개수는 조상보다 적을 수 없다 == 같거나 많다. 자손의 변경은 조상에 영향을 미치지 않는다. class Tv{ boolean power; // 전원상태(on/off) int channel; // 채널 void power() { power = !power; } void channelUp() { ++channel; } void channelDown() { --channel; } } -> 부모 클래스 멤버 5개 class SmartTv extends..