# JAVA8

80개의 포스트

모던자바인액션 Chapter 5_스트림 활용

모던자바인액션 챕터 5에서 소개하는 스트림 API의 다양한 기능 소개와 활용 방법을 정리한 포스팅이다.

4일 전
·
0개의 댓글
·

[Java] Optional

null 체크를 위해 if문을 사용하는 적이 많았다. Optional을 만나기 전까지는..

6일 전
·
0개의 댓글
·
post-thumbnail

[Java] 모던자바인액션 - Chapter2 : 동작 파라미터화 코드 전달하기

동작 파라미터화는 메서드 내부적으로 다양한 동작을 유연하게 대응 할 수 있도록 코드를 메서드 인수로 전달한다.불필요하거나 반복되는 코드를 줄이고 변화하는 요구사항에 유연하게 대응을할 수 있어 엔지니어링 비용을 줄일 수 있다.코드 전달 기법(람다)를 통해 메서드의 인수를

2022년 9월 14일
·
0개의 댓글
·

Optional에 대하여

개발하다가 optional 을 사용하는 코드가 있길래 궁금해졌다. Optional< T >는 제네릭 클래스로 T타입의 객체를 감싸는 래퍼 클래스이다. 때문에 Optional 타입의 객체에는 모든 타입의 참조변수를 담을 수 있다. 왜 Optional을 쓰는 걸까?개

2022년 9월 8일
·
0개의 댓글
·
post-thumbnail

Service - 책 목록보기

본 시리즈는 메타 코딩님의 Junit 강의를 학습한 내용을 바탕으로 정리하였습니다.현재 Service layer의 로직들을 개발하고 있다. 계속해서 이번엔 책 목록보기를 구현해보자.책 목록 보기는 상당히 간단히 구현되었다.한 가지 특징적인 것을 보자면 bookRepo

2022년 9월 8일
·
0개의 댓글
·

CompletableFuture

자바에서 비동기 프로그래밍을 가능케 하는 인터페이스 implements Futureimplements CompletionStagefuture.join(): 예외 발생 시 언체크드 익셉션future.get(): 예외 발생 시 체크드 익셉션리턴값이 없는 경우: runAs

2022년 9월 6일
·
0개의 댓글
·

JAVA8 이전 동시성 프로그래밍

동시에 여러 작업을 할 수 있는 소프트웨어자바에서는 멀티프로세싱(ProcessBuilder), 멀티쓰레드를 지원한다.자바 멀티쓰레드 프로그래밍 (Thread / Runnable)쓰레드 순서는 보장되지 않는다.고수준 Concurrency 프로그래밍Executor가 하는

2022년 9월 5일
·
0개의 댓글
·
post-thumbnail

[Java] 모던자바인액션 - Chapter1 : 자바 8, 9, 10, 11 무슨일이 일어나고 있는가?

1.1 역사의 흐름은 무엇인가? 멀티코어 CPU 대중화와 같은 하드웨어적인 변화등이 자바 8에 영향을 미쳤다. 지금까지 대부분의 자바 프로그램은 싱글코어만 사용했다. 자바 8에서 는 병렬 실행을 새롭고 단순한 방식으로 접근할 수 있는 방법을 제공한다. 자바 9에서는

2022년 9월 5일
·
0개의 댓글
·

Date, Time API

자바8 이전의 Date 자바8 이전까지 사용하던 java.util.date 클래스는 mutable하기 때문에 thread safe하지 않다. (Setter) 클래스 이름이 명확하지 않다. Date인데 Time까지 다룬다. 월이 0부터 시작한다. (0이 1월이다.)

2022년 9월 4일
·
0개의 댓글
·

Optional

Null을 리턴하는 것 자체가 문제 리턴타입으로만 사용(권장사항)(메소드 매개변수 타입, 맵의 키 타입, 인스턴스 필드 타입으로 쓰지 말자.)반환값이 Optional인 메소드에서 null을 리턴하지 말자프리미티브 타입용 Optional도 있다. (OptionalInt,

2022년 9월 2일
·
0개의 댓글
·

Steam

가지고 있는 연속된 데이터를 처리하는 오퍼레이션컨베이어 벨트 데이터를 담는 저장소(컬렉션)가 아니다.Funtional in nature, 스트림이 처리하는 데이터 소스를 변경하지 않는다. \- 스트림을 사용한다고 해서 기존의 데이터를 변경하지 않는다.스트림으로 처리하

2022년 8월 28일
·
0개의 댓글
·

자바8 인터페이스

디폴트 메소드 인터페이스에 추상 메소드가 아닌 구현 메소드를 정의 하는 것 해당 인터페이스를 구현한 클래스들을 깨트리지 않고 메소드를 추가할 수 있다. 인터페이스를 상속받는 인터페이스에서 다시 추상 메소드로 변경할 수 있다. 구현체가 재정의 할 수 있다. 구현

2022년 8월 24일
·
0개의 댓글
·

람다 표현식

(인자) -> {바디}인자가 없을 때: ()인자가 한개일 때: (one) 또는 one인자가 여러개 일 때: (one, two)인자의 타입은 생략 가능, 컴파일러가 추론(infer)하지만 명시할 수도 있다. (Integer one, Integer two)로컬 변수 캡처로

2022년 8월 20일
·
0개의 댓글
·

함수형 프로그래밍

모든 일급 객체는 함수의 실질적인 매개변수가 될 수 있다.모든 일급 객체는 함수의 반환값이 될 수 있다.모든 일급 객체는 할당의 대상이 될 수 있다.모든 일급 객체는 비교 연산(==, equal)을 적용할 수 있다.사이드 이팩트가 없다. (함수 밖에 있는 값을 변경하지

2022년 8월 19일
·
0개의 댓글
·

class07 Extra

애노테이션의 변화애노테이션 관련 두가지 큰 변화자바 8부터 애노테이션을 타입 선언부에도 사용할 수 있게 됨.자바 8부터 애노테이션을 중복해서 사용할 수 있게 됨.타입 선언 부제네릭 타입변수 타입매개변수 타입예외 타입...타입에 사용할 수 있으려면TYPE_PARAMETE

2022년 8월 4일
·
0개의 댓글
·

class06 CompletableFuture2

CompletableFuture 1자바에서 비동기(Asynchronous) 프로그래밍을 가능케하는 인터페이스.Future를 사용해서도 어느정도 가능했지만 하기 힘들 일들이 많았다.Future로는 하기 어렵던 작업들Future를 외부에서 완료 시킬 수 없다. 취소하거나,

2022년 8월 3일
·
0개의 댓글
·

Java8 lambda expression

자바8 에 도입된 lambda expression 의 장점 코드 라인 수 감소 및 명확한 의도 전달 병렬 처리 ExecutorService 혹은 @Async 등의 추가 코드 없이 간단히 구현 가능. Thread Pool에 대한 설정은 ForkJoinPool을 사

2022년 7월 3일
·
0개의 댓글
·
post-thumbnail

[JAVA] 자바 환경변수 설정

해당 글은 자바 8 기준으로 작성합니다. 1. 자바 다운로드(jdk1.8 설치) 하기 아래의 링크로 이동합니다. https://www.oracle.com/java/technologies/downloads/#java8-windows

2022년 6월 27일
·
2개의 댓글
·

Java 개발 지식

SDK ⊃ JDKJDK = JRE + Development ToolsJRE = JVM + LibrarySDK(Software Development Kit)소프트웨어 개발하는데 있어서 필요한 개발 도구를 의미Java 개발시 SDK라고 하면, Java EE를 말하는 경우가

2022년 6월 22일
·
0개의 댓글
·

람다 캡처링 :: Variable used in lambda expression should be final or effectively final의 이유

람다 실행시에 실행되던 메소드의 스택 영역에 저장되는 외부 변수들에 대해서는 참조만 가능하고 값 변경은 불가→ final or effectively final 변수만 사용 가능한 이유외부 Reference type 변수에 대한 변경은 힙 메모리 데이터를 변경하는것이기

2022년 6월 15일
·
0개의 댓글
·