java.lang.function 패키지자바에서 미리 정의해둔 자주 사용할만한 함수 인터페이스Function<T, R>BiFunction<T, U, R>Consumer <T>Supplier<T>Predicate<T>UnaryOperator&l
람다가 하는 일이 기존 메서드 또는 생성자를 호출하는 거라면, 메소드 래퍼런스를 사용해서 매우 간결하게 표현할 수 있다.메소드 또는 생성자 매개변수로 람다의 입력값을 받는다.리턴값 또는 생성한 객체의 람다의 리턴값이다.
인터페이스를 작성했습니다. MyFoo 클래스는 해당 인터페이스를 구현하고 있습니다. 여기서 인터페이스에 새로운 메서드가 추가된다면 ? 이 인터페이스를 구현하는 모든 클래스들을 고쳐야 합니다. 구현한 클래스를 고치지 않고 인터페이스에 메서드를 추가하는 방법은 아래와
자바 8에서 추가한 메소드로 인한 API 변화 Iterable의 기본 메소드 forEach() spliterator() : 쪼개는 기능을 가지고 있습니다. Collection의 기본 메소드 stream() / parallelStream() removeIf(Pr
이 글은 인프런 백기선님의 "더 자바, Java8" 강의를 정리한 내용입니다.
이 게시글은 인프런 백기선님의 "더 자바, JAVA8" 강의를 듣고 정리하였습니다.코드로 아주 간단한 문제를 만들어서 풀어보았습니다.
이 게시글은 인프런 백기선님의 "더 자바, JAVA8" 강의를 듣고 정리하였습니다.자바 프로그래밍에서 NPE을 정정 보게되는 이유null을 리턴하고 null 체크를 하지 않았기 때문이다.메소드에서 작업 중 특별한 상황에서 값을 제대로 리턴할 수 없는 경우 선택할 수 있
인프런 강의 "더 자바, JAVA8"(백기선님)의 강의를 듣고 정리한 글 입니다. JAVA8에 추가된 핵심 기능들을 이해하기 쉽게 설명해 주시니 한번씩 들어보시는 것을 추천드립니다. "더 자바, JAVA8 바로가기" 자바 8에 새로운 날짜와 시간 API가 생긴 이유
인프런 강의 "더 자바, JAVA8"(백기선님)의 강의를 듣고 정리한 글 입니다. JAVA8에 추가된 핵심 기능들을 이해하기 쉽게 설명해 주시니 한번씩 들어보시는 것을 추천드립니다."더 자바, JAVA8 바로가기"Instant.now() : 현재 UTC (GMT)를 리
인터페이스 안에 추상메서드가 하나만 존재하는 것입니다.함수형 인터페이스를 익명 내부클래스로 구현해보았습니다.아래는 똑같은 코드를 람다로 표현하였습니다.추상 메서드를 딱 하나만 가지고 있는 인터페이스SAM(Single Abstract Method) 인터페이스@Functi
동시에 여러 작업을 할 수 있는 소프트웨어유튜브를 시청하면서 문서 타이핑이 가능하다.카톡을 하면서 유튜브를 볼 수 있다.멀티프로세싱 (ProcessBuilder)멀티쓰레드Thread / Runnable위 코드의 결과는 Thread ~가 먼저 출력될 것 같지만 Threa
인프런 강의 "더 자바, JAVA8"(백기선님)의 강의를 듣고 정리한 글 입니다. JAVA8에 추가된 핵심 기능들을 이해하기 쉽게 설명해 주시니 한번씩 들어보시는 것을 추천드립니다. "더 자바, JAVA8 바로가기" Executors 고수준 Concurrency
인프런 강의 "더 자바, JAVA8"(백기선님)의 강의를 듣고 정리한 글 입니다. JAVA8에 추가된 핵심 기능들을 이해하기 쉽게 설명해 주시니 한번씩 들어보시는 것을 추천드립니다."더 자바, JAVA8 바로가기"Runnable과 유사하지만 작업의 결과를 받을 수 있다
인프런 강의 "더 자바, JAVA8"(백기선님)의 강의를 듣고 정리한 글 입니다. JAVA8에 추가된 핵심 기능들을 이해하기 쉽게 설명해 주시니 한번씩 들어보시는 것을 추천드립니다. "더 자바, JAVA8 바로가기" 자바에서 비동기 (Asynchronous) 프로
인프런 강의 "더 자바, JAVA8"(백기선님)의 강의를 듣고 정리한 글 입니다. JAVA8에 추가된 핵심 기능들을 이해하기 쉽게 설명해 주시니 한번씩 들어보시는 것을 추천드립니다."더 자바, JAVA8 바로가기"자바 8부터 애노테이션을 타입 선언부에도 사용할 수 있게
인프런 강의 "더 자바, JAVA8"(백기선님)의 강의를 듣고 정리한 글 입니다. JAVA8에 추가된 핵심 기능들을 이해하기 쉽게 설명해 주시니 한번씩 들어보시는 것을 추천드립니다."더 자바, JAVA8 바로가기"알고리즘의 효율이 바뀌지 않았지만, 여러 쓰레드가 분산해
인프런 강의 "더 자바, JAVA8"(백기선님)의 강의를 듣고 정리한 글 입니다. JAVA8에 추가된 핵심 기능들을 이해하기 쉽게 설명해 주시니 한번씩 들어보시는 것을 추천드립니다."더 자바, JAVA8 바로가기"JVM의 여러 메모리 영역 중에 PermGen 메모리 영
공통의 속성이나 기능을 묶어 이름을 붙이는 것, 객체 지향 관점에서 클래스를 정의 하는 것을 추상화라고 할 수 있습니다.추상화가 안된 객체지향적이지 않은 코드를 보겠습니다.위 코드는 Client가 메시지를 보내는 기능을 테스트, 또는 실제 메시지를 보내는 것을 구현한
자바와 객체지향 Enum Enum은 단순히 데이터의 타입을 정의할 때 사용한다고 생각하기 쉽지만 간단한 문법으로 강력한 다형성을 제공해줍니다. 간단한 계산기 프로그램입니다. 이 코드에서 눈여겨 보야할 점은 CalculateType으로 인해 분기가 되고 있다. enum
자바의 정석 책을 읽었고 그 안에 예외에 대한 설명이 있었지만 그렇게 주의깊게 읽고 학습하지 않았습니다. 이번에는 예외에 대해 학습해보도록 하겠습니다.이것에 대해 자주 이야기하는 오답은 아래와 같습니다.하지만 이것은 옳은 대답이 아닙니다. 컴파일 시점에는 예외가 발생하
if문은 자바에 핵심 문법입니다. 하지만 너무 많은 if문은 코드를 읽기 힘들게 만들고, 코드를 수정하기도 힘들게 만들고, 문제가 발생했을 때 디버깅도 어렵습니다. 따라서 같은 로직이라면 if문이 없이 작성된 코드가 가독성이 높은 코드가 될 가능성이 높습니다.이 코드는
직전 게시글에 작성했던 Client 코드입니다. 이 코드에는 객체지향적인 관점으로 봤을 때는 문제가 있습니다. 여러분은 어떤 것인지 아시겠나요?CalculateCommand를 Client가 너무 잘 알고 있다는 문제입니다. 내부에 어떤 필드가 있는지를 알고 있다는 것입
SOLID가 뭔데 ?