# JAVA8
Java 개발 지식
SDK ⊃ JDKJDK = JRE + Development ToolsJRE = JVM + LibrarySDK(Software Development Kit)소프트웨어 개발하는데 있어서 필요한 개발 도구를 의미Java 개발시 SDK라고 하면, Java EE를 말하는 경우가
람다 캡처링 :: Variable used in lambda expression should be final or effectively final의 이유
람다 실행시에 실행되던 메소드의 스택 영역에 저장되는 외부 변수들에 대해서는 참조만 가능하고 값 변경은 불가→ final or effectively final 변수만 사용 가능한 이유외부 Reference type 변수에 대한 변경은 힙 메모리 데이터를 변경하는것이기

[Kotlin] 함수형 인터페이스 BiFunction
자바 1.8부터 사용할 수 있는 함수형 인터페이스(Functional Interface : 람다식 또는 메서드 참조에 대한 할당 대상으로 사용이 가능한 인터페이스)이며, 두개의 인수를 받아 결과를 생성하는 함수입니다.코틀린에서 사용법은 아래와 같습니다. 함수 실행 링크

Java Optional을 알아보자
Java 8 환경에서 개발하다보면 생소한 개념이나 클래스들이 많이 등장하는데오늘은 Java 8에서 처음 추가된 Optional클래스에 대해 알아보자Optional은 어떤 Type의 클래스를 한번 더 감싼 Wrapper Class이다.Java에서 변수 사용시에 크게 두가
[Java8]CompletableFuture
Executor 프레임워크와 쓰레드풀을 통해서 쓰레드의 힘을 높은 수준으로 끌어 올리는 태스크 제출과 실행을 분리할 수 있는 기능을 제공Java 스레드는 직점 운영체제 스레드에 접근운영체제 스레드는 만들고 종료하는데에 있어 비용이 비쌈또한 스레드 숫자는 제한되어 있으므
List<Object> to List<String>
java 8 Stream을 활용하여 객체 리스트를 String이나 Integer 형태의 List로 변환 ref.김용환 블로그(2004-2020)
[Java]자바 컬렉션 프레임워크(Java Collection Framework)
ex. 10개의 Product 객체를 저장해 두고, 필요할 때 마다 하나씩 꺼내서 이용한다고 가정한다.어떻게 Product를 효율적으로 추가, 검색, 삭제할 수 있을까? 👉 배열을 이용한다.하지만 배열은 저장할 수 있는 객체 수가 배열을 생성할 때 결정되서 불특정 다
[Java8]Optional 클래스
OptionalXXX 클래스 java.util 패키지의 Optional, OptionalDouble, OptionalInt, OptionalLong 클래스 타입을 일컫는다.이들은 값을 저장하는 값 기반 클래스로, 이 객체에서 값을 얻기 위해서는 get(), getAs
[Java8]Stream의 중간처리메소드와 최종처리메소드
[Java8]Stream(스트림)
자료의 대상과 관계없이 동일한 연산을 수행한다. (일관성)배열, 컬렉션을 대상으로 연산을 수행일관성 있는 연산으로 자료의 처리를 쉽고 간단하게 함"자료 처리를 추상화했다."라고 표현함한번 생성하고 사용한 스트림은 재사용이 불가능하다.자료에 대해 스트림을 생성하여 연산을
[Java8]메소드 레퍼런스, 인터페이스의 default, static method
메소드 참조는 메소드를 참조해서 매개변수의 정보 및 리턴 타입을 알아내어, 람다식에 불필요한 매개 변수를 제거하는 것이 목적람다식은 종종 기본 메소드를 단순히 호출만 하는 경우가 많다.ex) 두 개의 값을 받아 큰 수를 리턴하는 Math 클래스의 max() 정적 메소드
자바 옵셔널에 대하여
개요 코드숨 과제를 하던 중에 null safty에 대한 피드백을 받았다. findById 는 taskMap Task 를 반환하는 메소드이다. 만약에 taskMap에 Task가 존재하지 않으면 사용자 입장에서 반환하는 Task의 메소드의 호출시 NullPointEx

[Mac M1] 싸피(ssafy)인들을 위한 맥북M1 Java8 Zulu 설치 및 환경변수 설정
Zulu8.jdk 설치 https://www.azul.com/downloads/?version=java-8-lts&os=macos&architecture=arm-64-bit&package=jdk Filter : Java8, macOS, ARM 64-bit, JDK