BEST

Real-World Java - Advanced Part 3, Lambda, Streams, and Functional Programming by Kim Young-han

Learn the essential modern Java technologies of Lambda, Stream, and functional programming with Java, from the basics to the practical level, in depth.

(5.0) 125 reviews

2,961 students

Java
Functional Programming
Lambda
optional

This course is prepared for Basic Learners.

What you will learn!

  • Lambda

  • Functional Interface

  • Stream API

  • 선택 사항

  • Functional programming

Ranked 1st in cumulative number of students enrolled in domestic development field
Kim Young-han's Practical Java Made Right

Just knowing Java grammar? That won't do!

Former Technology Director of Woowa Brothers, Cumulative Students Surpass 400,000
Why Kim Young-han created Java lectures

•••

“I wanted to create a proper Java course that would create proper developers needed for real work.”

The latest Java syntax and techniques that shine in practice

So far, we have covered the basics of Java through Java Introductory, Basic, and Intermediate 1 and 2, and learned advanced technologies such as multithreading, I/O, networking, reflection, and annotations through Advanced 1 and 2 .

In this "Advanced Java 3" lesson, you will learn new grammar and techniques frequently used in modern Java, such as lambda, stream, and functional programming.

  • Lambda

  • Stream

  • Functional Programming

Kim Young-han's Practical Java Roadmap

This lecture is the last lecture of Kim Young-han's Practical Java Roadmap , and is intended for those who have learned basic Java grammar and OOP (classes, generics, collections, data structures), multithreading, input/output, and network utilization.

>> Introducing the Java Roadmap Guide to help you learn effectively and appropriately for your purpose .

The lecture "Kim Young-han's Practical Java - Advanced Part 3"

The importance of essential understanding

Rather than simply learning Java's syntax and features, we delve deeply into why those features are necessary and how they can be applied in practice.

A practical approach

Rather than simply conveying theories, it provides step-by-step understanding of the necessity of Java technology through illustrations and example codes that help understanding. In addition, through various examples, you can understand how each technology is utilized in practice.

Our goal is more than just grammar.

This advanced 3-part course aims to completely master functional programming using lambdas, streams, and Java from the basics to the level required for practical use.

In particular, rather than simply learning the grammar of lambda and streams, you will learn in depth how to properly apply these cutting-edge technologies in practice through various practical examples and best practices.

I will teach you how to apply and utilize technologies like lambda, streams, and functional programming in practice, beyond simply knowing them.

Lecture Contents

  • Learn the basics and usage of Lambda, and practice implementing filters, maps, streams, etc.

  • Learn the basic theory and various functions (filter, map, flatMap, etc.) of the stream API, and learn how to use stream collectors and parallel streams.

  • Learn additional features such as Optional and default methods, and learn how to apply them correctly in practice.

  • Understand programming paradigms such as imperative, object-oriented, and functional, and learn functional programming in Java in an easy-to-understand way through code.


Lambda and functional programming core summary

Mastering the basics of lambda and functional interfaces

Learn about the necessity, definition, grammar, and usage tips of lambda. Also, learn about functional interfaces, an essential concept used with lambda, and learn how to effectively utilize various interfaces built into the Java standard API.

Practical use of lambda and method reference

Learn the core usage of lambdas in real-world code. Also, learn how to properly use lambdas by comparing their differences with anonymous classes, and understand how to increase code conciseness through method references added in Java 8.

Complete understanding of Stream API and practical application

Stream API Basics

The Stream API, along with Lambda, presents a new paradigm for handling Java collections. We will organize the structure and basic usage of streams so that they are easy to understand, and learn how to write more concise and intuitive code by learning the core functions provided by streams such as filtering, mapping, sorting, and reducing.

Deeper streams, using collectors

Learn the concept of Collector for data collection and processing, and cover various collection techniques such as collect() , groupingBy() , and partitioningBy() . Learn essential skills in practice through practical examples.

Advanced add-ons and functional programming

Advanced Add-ons

Learn advanced features added in Java 8. Learn how to prevent NPE problems using Optional and maintain compatibility when extending interfaces using default methods. Also, learn techniques to maximize performance in multicore environments using parallel streams.

Functional Programming

Learn how to implement the functional programming paradigm using features added after Java 8, such as lambda, stream API, and Optional. Compare various paradigms, such as imperative, object-oriented, declarative, and functional, and acquire practical know-how to effectively apply functional programming in Java.

“Rather than thinking about what more I should teach, I thought more deeply about what absolutely must be known.”

In this 'Kim Young-han's Practical Java Java Roadmap', my goal is to create a capable developer who has solid fundamentals that are necessary for actual work. The fundamentals that are built over a long period of time become more valuable as time goes by. I hope that this lecture will serve as a foundation for you to easily and quickly absorb the numerous practical technologies that you will encounter in the field and grow into a developer who grows more enjoyably.

Recommended for
these people!

Who is this course right for?

  • Aspiring developer

  • For those who have studied Java but want to solidify the fundamentals

  • Developers who want to gain a deeper understanding of Java for practical use.

Need to know before starting?

  • Kim Young-han's Practical Java - Advanced Part 1 - Multi-threading and Concurrency

  • Kim Young-han's Practical Java - Intermediate Level 1 & 2

  • Kim Young-han's Practical Java - Fundamentals

Hello
This is yh

531,487

Students

33,079

Reviews

8,852

Answers

5.0

Rating

22

Courses

진짜 실무에 필요한 제대로 된 개발자가 될 수 있도록, 교육하는 것이 저의 목표입니다.

 

저의 개발 인생 이야기

EO 인터뷰 영상

개발바닥 - 시골 청년 개발왕 되다

취업과 이직에 대한 고민 해결

 

More

Curriculum

All

99 lectures ∙ (16hr 40min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

125 reviews

5.0

125 reviews

  • bonjeong08

    Reviews 2

    Average Rating 5.0

    Edited

    5

    100% enrolled

    입대 전 최고의 선택 😊 ++ 완강 후: 저는 작년에 대학교에 입학하면서 처음으로 자바를 배우게 되었습니다. 그곳에서 선배의 추천으로 김영한님의 강의를 접하게 되었는데 입문편과 기본편을 보면서 아무것도 모르는 상태에서 원리부터 차근차근 설명해주시는 강의 방식이 매우 인상적이었습니다. 직접 그리신 그림 자료와 잘 정리된 PDF 덕분에 자바라는 언어를 재미있게 학습하며 기초를 다질 수 있었습니다. 그리고 중급편과 고급편을 학습하면서 여러 디자인 패턴과 같은 재미난 요소들로 자바와 객체지향 프로그래밍의 매력에 빠져든 것 같았습니다. 저는 작년에 시작해서 1년 동안 입문편부터 고급편까지 영한님의 자바 로드맵을 수강하며 많은 것들을 배웠습니다. 덕분에 A+도 받고 감사했습니다! 혹시 모를 추가 강의도 기대해보겠습니다! 감사합니다.

    • 김영한
      Instructor

      bonjeong08님 감사합니다 :) bonjeong08님 수강평을 보니 갑자기 20년 전 옛날 이야기가 생각나네요 ㅎㅎㅎ 제가 존경하는 선배님이 계셨는데, 그분은 군에서 자바를 공부하고 나오셨더라구요. 그래서 어떻게 공부하셨나고 물어보니, 아주 두꺼운 자바 책 한권 들고 컴퓨터도 없이 머리로 계속 시뮬레이션 하면서 공부하셨다고 하더라구요 ㅎㅎ bonjeong08님 응원합니다 :)

  • 정대훈

    Reviews 5

    Average Rating 5.0

    5

    61% enrolled

    람다 / 스트림을 처음 공부했을때, 모던 자바 인 액션이라는 책으로 공부했었는데, 이 책을 읽으면서도 많이느끼고, 설명도 잘 되어져있다고 생각하면서 이 기술들에 익숙해지는게 느껴졌었는데, 이번에 스트림까지 강의를 들으면서 단연코 이 강의가 압도적이라고 생각하네요. 제가 많이 공부해본것도아니고, 제 실력이 낮은편이여서 다른책/강의가 힘들다고 느꼈었을지는 몰라도, 들어봤던 강의 / 봤었던 책들중에는 가장 좋다고 느낍니다. 섹션을 구분지어서 가는게아니라, 서로 연결되어져있는 느낌도 받아서 너무 좋았고, 그렇기에 흐름을 따라갈 수 있었던점 예시들이 적다고 느꼈지만, 예시 하나하나 아주 좋았던점 등등 ... 영한님 로드맵에있는 강의들 다 따라오면서 마지막 강의 수강중인데 모든 강의들중에서 가장 좋다고 생각합니다 처음 람다/ 스트림 을 배우는데에 이만한 강의/책 도 없을거라고생각하고 이미 어느정도 알고있는 시점에서도 다시한번 잘 정리하는데에도 이만한 강의 / 책 도 없을거라고 생각이 듭니다. 그냥 의식의 흐름대로 적어서 글이 좀 난장판이기는한데, 어찌됐든 이 강의는 신입니다 신 좋은강의 만들어주셔서 감사합니다. 리뷰2개 이상은 남길 수 없는거 같아서 기존에있던 리뷰 지우고 다시 작성합니다ㅠㅠ

    • 김영한
      Instructor

      정대훈님 즐겁게 공부하시는게 느껴저서 저도 기쁘네요 :) 사실 전체 섹션을 작은 블럭을 쌓아가듯 유기적으로 연결해서 큰 그림을 자연스럽게 완성하기 위해 많이 준비했는데, 이런 부분들도 알아주셔서 고맙습니다. 지금처럼 즐겁게 공부하시고 또 크게 성장하시길 응원합니다^^!

  • 안진표

    Reviews 1

    Average Rating 5.0

    5

    30% enrolled

    덕분에 람다, 스트림에 대한 이해와 숙련도가 높아지는 계기가 되었습니다. 감사합니다 영한님.

    • 김영한
      Instructor

      안진표님 열심히 들어주셔서 저도 감사합니다 :)

  • 열정맨

    Reviews 5

    Average Rating 5.0

    5

    100% enrolled

    안녕하세요! 이번 강의를 들으면서 강사님께서 말씀해주신 아름다움을 느낄 수 있었습니다. 정말 강의를 들으면 들을수록 너무 신기하고 흥미로운 시간이었습니다. 유독 이번 강의가 너무 짧게 느껴질 정도로 아쉬운 마음도 있는 것 같습니다. 그만큼 김영한 강사님께서 좋은 강의를 해주셨다고 생각합니다. 이제 자바 로드맵을 완강 하셨는데 정말 고생하셨다는 말 드리고 싶습니다. 사실 이렇게 혼자서 강의를 준비하고 편집하고 고민하고 또 고민해서 올리는 강의라는 것을 알고 정말 강사님의 열정을 본 받아서 저도 같이 열정적인 자세로 임했던 것 같습니다. 저는 현재 대학교에서 컴퓨터공학부 4학년입니다. 제가 이번 강의에 백엔드 프로그래밍으로 스프링 프레임워크를 배우는 강의를 수강 중인데 강의를 들으면서 느낀 것이 정말 강사님 말씀대로 스펀지 흡수하듯이 제 코딩 실력이 몇 배는 올라갔다라는 것을 몸소 느낄 수 있었습니다. 현재 프로젝트에서도 지금 배운 람다 기술을 적용할 수 있는 부분들 적용하면서 더욱 람다에 대해 가까워질 수 있었습니다. 이번에도 이렇게 좋은 강의로 찾아와주셔서 감사합니다! 앞으로도 꾸준히 나아가는 개발자 되기 위해 노력하겠습니다! 제 개발자의 길에는 김영한 강사님도 같이 걸어가고 있는 듯이 든든한 존재입니다. 존경합니다!! 감사합니다!

    • 김영한
      Instructor

      열정맨님 저에게도 힘이 되는 수강평 감사합니다! 이번 강의를 통해서 개발의 아름다움을 느끼셨다면 개발자로써 호기심과 즐거움으로 지속적으로 잘 성장하실 수 있을거에요 :) 즐겁게 공부하시고 또 꾸준하게 공부하셔서 크게 성장하시길 응원합니다!

  • xuv2

    Reviews 13

    Average Rating 4.8

    Edited

    5

    27% enrolled

    안녕하세요 영한님, 먼저 자바 로드맵을 무사히 완결 시키신 것을 축하드립니다 ! 이번 자바 3편은 제가 너무너무 듣고 싶었던 모던 문법 (람다, 스트림)에 관련된 내용이라 정말 많이 기다렸습니다. 저는 최초에 야생형 코스를 타려다 스프링 입문 편에서 람다와 옵셔널에 좌절하고 자바 로드맵부터 모두 끝내자고 마음먹고, 입문편을 시작으로 벌써 마지막 강의까지 왔습니다. 제가 자바 모든 로드맵을 수강하고, 최소 2번 이상은 모두 복습한 후기로, 이 자바 로드맵은 정말 "단순한 자바 언어 강의가 아닌 프로그래밍 및 컴퓨터 과학을 기반으로 한 심도 있는 강의" 라고 생각합니다. 사실 이전에 람다 문법에 대해서는 책이나 검색을 통해 살짝씩 야매로 찾아가며 이해 하려고 노력했었지만, 실제로 어떻게 람다를 사용해야하는지에 대해서는 완전히 이해하지 못했었습니다. 저는 함수형 프로그래밍, 람다 등 처음 보는 단어에 대해서 지레 겁을 먹는 경향이 있습니다. 하지만 이번 강의의 시작부터 "여러분, 람다도 객체입니다" 라는 한 문장을 듣는 순간 제가 어렵게만 느꼈던 내용도 곧바로 술술 이해가 되기 시작 했습니다. 학교 교수님께서는 왜 람다도 객체라는 말을 한마디 안해주셔서 제가 이렇게 돌고 돌아오게 만드셨을까 생각도 들고, 저 한 문장으로 저를 이해 시킨 영한님에게도 감사한 마음이 동시에 들었습니다ㅋㅋㅋ. 입문, 기본 편을 통해 자바 기초 문법을 다질 수 있었고, 중급편을 통해 예외는 어떻게 잡는지, 그리고 어떤 상황에서 어떤 자료구조를 써야하는가에 대해 확실히 알게 되었고 처음 코딩테스트에 도전해보았으며, 고급 1편을 통해 멀티 스레드 -> 멀티 스레드를 활용한 프레임 워크를 배웠고, 고급 2편을 통해서는 네트워크와 리플렉션을 통해 동적인 프로그램은 어떻게 만드는지 살짝 맛을 볼 수 있었고, 이번 고급 3편을 통해서는 최신 문법이라고는 하지만 이미 상용화 된 자바 문법에 대해서 배울 수 있었습니다. 또한, 이 모든 과정을 진행하며 따로 공부는 하지 않았지만 자연스레 습득하게 된 컴퓨터 과학 지식들도 많았습니다. 특히 SOLID 원칙을 처음 접했을 때는 각 원칙이 어떤 것을 의미하는지 쉽게 이해하지 못하였습니다. 하지만 이 로드맵이 마칠 때쯤에 다시 한번 원칙들을 읽어 보았을 때는, 제가 이미 당연하다고 생각하는 내용들로 구성된 원칙이구나 라고 깨달을 수 있게 되었습니다. 비록 제가 이러한 고급 스킬들을 배우기만하여 뭔가를 당장 만들 수는 없겠지만, 스프링을 위한 한 스텝을 뗐다고 생각하고 스프링 로드맵도 열심히 달려보겠습니다 ! "자바는 모든 것이 객체다!" "모든 기능은 무슨 용변의 재주가 있는 것이 아닌 자바 코드로 작성한 기능이다!" 두가지 말씀 꼭 머리에 새기고 복습도 열심히 하겠습니다. 늘 건승하시고, 다시 한번 자바 로드맵 완성 축하드립니다 !

    • 김영한
      Instructor

      xuv2님 즐겁게 공부하시는 모습을 보니 저도 열심히 준비한 보람이 있네요 :) 무엇보다 자바 기본기를 하나하나 제대로 쌓아가시는 모습이 너무 좋습니다. 저도 시간이 지나고 보니 결국 기본기를 잘 해두어야, 이후에 스프링이나 JPA 같은 활용 기술들을 다룰 때 더 깊이있게 이해할 수 있게 되더라구요. 그리고 제 강의가 단순히 자바 문법만 전달하는 것이 아니라 실무에 꼭 필요한 기본적인 CS 내용들이 실제 실무에 어떤 식으로 활용되는지도 함께 설명하려고 노력했는데, 이런 부분들도 알아주셔서 고맙습니다. 저에게 참 힘이 되는 수강평이네요 :) 덕분에 저도 더 힘내서 다음 강의 열심히 준비하겠습니다^^! 즐겁게 공부하시고 또 크게 성장하세요!

yh's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!

$59.40