강의

멘토링

로드맵

BEST
Programming

/

Web Development

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.

(4.9) 226 reviews

3,810 learners

  • yh
Java
Functional Programming
Lambda
optional

Reviews from Early 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

559,469

Learners

36,767

Reviews

8,971

Answers

5.0

Rating

25

Courses

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

 

저의 개발 인생 이야기

EO 인터뷰 영상

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

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

 

Curriculum

All

99 lectures ∙ (16hr 40min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

226 reviews

4.9

226 reviews

  • bonjeong088610님의 프로필 이미지
    bonjeong088610

    Reviews 2

    Average Rating 5.0

    Edited

    5

    100% enrolled

    Lựa chọn tuyệt vời nhất trước khi nhập ngũ 😊 ++ Sau khi hoàn thành khóa học: Tôi bắt đầu học Java lần đầu tiên khi vào đại học năm ngoái. Tại đó, tôi được một tiền bối giới thiệu đến các bài giảng của thầy Kim Young-han và sau khi xem các khóa nhập môn và cơ bản, tôi rất ấn tượng với phương pháp giảng dạy giải thích từng bước từ nguyên lý cho những người chưa biết gì. Nhờ tài liệu hình ảnh do thầy tự vẽ và file PDF được trình bày rõ ràng, tôi có thể học Java một cách thú vị và củng cố kiến thức nền tảng. Và khi học các khóa trung cấp và nâng cao, tôi dường như đã bị cuốn hút vào sự hấp dẫn của Java và lập trình hướng đối tượng với nhiều yếu tố thú vị như các pattern thiết kế khác nhau. Tôi đã bắt đầu từ năm ngoái và học lộ trình Java của thầy Young-han từ khóa nhập môn đến khóa nâng cao trong một năm và học được rất nhiều điều. Nhờ đó mà tôi đã đạt được điểm A+ và rất biết ơn thầy! Tôi cũng mong chờ những bài giảng bổ sung khác nếu có! Cảm ơn thầy.

    • yh
      Instructor

      Cảm ơn bonjeong08 ạ :) Đọc bình luận của bonjeong08 mà tự nhiên tôi lại nhớ về câu chuyện của 20 năm trước 😊😊😊 Tôi có một tiền bối rất kính trọng, anh ấy học Java trong quân đội rồi xuất ngũ. Tôi hỏi anh ấy đã học như thế nào thì anh ấy bảo là anh ấy đã mang một cuốn sách Java dày cộp và học bằng cách liên tục mô phỏng trong đầu mà không cần máy tính 😊😊 Chúc bonjeong08 mọi điều tốt đẹp ạ :)

  • xuv2님의 프로필 이미지
    xuv2

    Reviews 20

    Average Rating 4.8

    Edited

    5

    27% enrolled

    Chào anh Younghan, trước hết xin chúc mừng anh đã hoàn thành tốt đẹp lộ trình Java! Phần 3 Java lần này là nội dung về cú pháp hiện đại (Lambda, Stream) mà em rất muốn nghe nên đã chờ đợi rất lâu. Ban đầu em định học khóa hoang dã, nhưng đã nản ở phần nhập môn Spring vì Lambda và Optional, nên em quyết tâm hoàn thành hết lộ trình Java trước, và bắt đầu từ phần nhập môn đến giờ đã đến bài giảng cuối cùng. Sau khi em học hết tất cả lộ trình Java và ôn tập ít nhất 2 lần, em thấy lộ trình Java này thực sự là "một bài giảng chuyên sâu dựa trên lập trình và khoa học máy tính chứ không chỉ là một bài giảng ngôn ngữ Java đơn thuần". Thực ra trước đây em đã cố gắng tìm hiểu về cú pháp Lambda một cách chắp vá thông qua sách hoặc tìm kiếm, nhưng em vẫn chưa hoàn toàn hiểu cách sử dụng Lambda trên thực tế. Em có xu hướng sợ hãi những từ ngữ mới như lập trình hàm, Lambda. Nhưng ngay từ đầu bài giảng, khi nghe câu "Mọi người ơi, Lambda cũng là một đối tượng", em đã hiểu ngay những nội dung mà em cảm thấy khó khăn. Em nghĩ không biết sao giáo sư ở trường không nói với em một câu rằng Lambda cũng là một đối tượng, khiến em phải đi đường vòng như thế này, và em cũng đồng thời cảm thấy biết ơn anh Younghan vì đã giúp em hiểu chỉ bằng một câu nói đó😆😆😆. Thông qua phần nhập môn và cơ bản, em đã có thể củng cố cú pháp Java cơ bản, Thông qua phần trung cấp, em đã hiểu rõ cách xử lý ngoại lệ và nên sử dụng cấu trúc dữ liệu nào trong tình huống nào, đồng thời lần đầu tiên thử sức với coding test, Thông qua phần cao cấp 1, em đã học về đa luồng -> framework sử dụng đa luồng, Thông qua phần cao cấp 2, em đã có thể nếm trải cách tạo ra các chương trình động thông qua mạng và Reflection, Thông qua phần cao cấp 3 lần này, em đã có thể học về cú pháp Java đã được thương mại hóa mặc dù nó là cú pháp mới nhất. Ngoài ra, trong suốt quá trình này, em cũng đã tự nhiên tiếp thu được nhiều kiến thức khoa học máy tính mà em không cần phải học riêng. Đặc biệt, khi mới tiếp xúc với nguyên tắc SOLID, em đã không dễ dàng hiểu được ý nghĩa của từng nguyên tắc. Nhưng khi em đọc lại các nguyên tắc này khi lộ trình gần kết thúc, em đã nhận ra rằng các nguyên tắc này bao gồm những nội dung mà em đã nghĩ là hiển nhiên. Mặc dù em chỉ học được những kỹ năng cao cấp này và chưa thể tạo ra bất cứ thứ gì ngay lập tức, nhưng em nghĩ rằng em đã thực hiện một bước tiến cho Spring và em sẽ cố gắng hết mình với lộ trình Spring! "Java là mọi thứ đều là đối tượng!" "Mọi chức năng đều là chức năng được viết bằng mã Java chứ không phải là một loại phép thuật nào đó!" Em sẽ khắc ghi hai điều này trong đầu và ôn tập chăm chỉ. Chúc anh luôn thành công và một lần nữa xin chúc mừng anh đã hoàn thành lộ trình Java!

    • yh
      Instructor

      Thấy bạn xuv2 học tập vui vẻ như vậy, tôi cũng thấy công sức chuẩn bị của mình thật đáng giá :) Điều quan trọng nhất là bạn đang xây dựng từng bước những kiến thức cơ bản về Java một cách vững chắc. Khi nhìn lại, tôi thấy rằng việc nắm vững những kiến thức cơ bản là điều cần thiết, vì sau này khi làm việc với các kỹ thuật ứng dụng như Spring hay JPA, chúng ta có thể hiểu sâu sắc hơn. Và tôi đã cố gắng giải thích không chỉ cú pháp Java mà còn cả những nội dung CS cơ bản cần thiết cho công việc thực tế, cũng như cách chúng được sử dụng trong thực tế. Tôi rất cảm ơn bạn đã nhận ra điều này. Đây là một đánh giá rất có ý nghĩa đối với tôi :) Nhờ có bạn mà tôi có thêm động lực để chuẩn bị tốt cho bài giảng tiếp theo ^^! Chúc bạn học tập vui vẻ và ngày càng phát triển hơn nữa!

  • dualis5731님의 프로필 이미지
    dualis5731

    Reviews 5

    Average Rating 5.0

    5

    61% enrolled

    Khi mới bắt đầu học về Lambda/Stream, tôi đã học bằng cuốn sách "Modern Java in Action", trong quá trình đọc cuốn sách này, tôi đã cảm nhận được rất nhiều và nghĩ rằng nó được giải thích rất tốt, đồng thời cảm thấy quen thuộc hơn với những kỹ thuật này. Lần này, khi nghe giảng đến Stream, tôi nghĩ rằng bài giảng này vượt trội hơn hẳn. Có thể do tôi chưa học nhiều và trình độ của tôi còn thấp nên tôi cảm thấy khó khăn với những cuốn sách/bài giảng khác, nhưng trong số những bài giảng/cuốn sách tôi đã từng xem, tôi cảm thấy đây là tốt nhất. Tôi cảm thấy rất tốt vì các phần không bị tách biệt mà được kết nối với nhau, nhờ đó mà tôi có thể theo kịp dòng chảy. Tôi cảm thấy có ít ví dụ, nhưng từng ví dụ đều rất hay... Tôi đang theo học những bài giảng trong lộ trình của Younghan và đây là bài giảng cuối cùng, tôi nghĩ đây là bài giảng hay nhất trong tất cả các bài giảng. Tôi nghĩ rằng không có bài giảng/cuốn sách nào tốt hơn bài giảng này để học Lambda/Stream lần đầu tiên. Ngay cả khi bạn đã biết một chút về nó, tôi nghĩ rằng không có bài giảng/cuốn sách nào tốt hơn bài giảng này để sắp xếp lại kiến thức một cách tốt đẹp. Tôi chỉ viết theo dòng suy nghĩ nên bài viết hơi lộn xộn, nhưng dù sao thì bài giảng này là thần thánh, là thần thánh. Cảm ơn vì đã tạo ra một bài giảng hay. Có vẻ như tôi không thể để lại nhiều hơn 2 đánh giá, vì vậy tôi đã xóa đánh giá cũ và viết lại 😭😭

    • yh
      Instructor

      Tôi rất vui vì cảm nhận được anh Jeong Dae-hoon đang học tập rất vui vẻ :) Thật ra, tôi đã chuẩn bị rất nhiều để kết nối toàn bộ các phần một cách hữu cơ như thể đang xây dựng các khối nhỏ và hoàn thành một bức tranh lớn một cách tự nhiên, tôi rất cảm ơn vì anh đã nhận ra những điều này. Tôi luôn ủng hộ anh học tập vui vẻ và phát triển vượt bậc như bây giờ^^!

  • jjs0107135951님의 프로필 이미지
    jjs0107135951

    Reviews 5

    Average Rating 5.0

    5

    100% enrolled

    Xin chào! Khi nghe bài giảng lần này, em đã cảm nhận được vẻ đẹp mà thầy đã nói đến. Thật sự càng nghe bài giảng, thời gian càng trở nên kỳ diệu và thú vị. Em cũng cảm thấy tiếc nuối đến mức mà riêng bài giảng lần này cảm thấy quá ngắn ngủi. Điều đó cho thấy em nghĩ rằng Thầy Kim Young-han đã mang đến một bài giảng tuyệt vời. Giờ đây thầy đã hoàn thành lộ trình Java, em muốn nói rằng thầy đã thực sự vất vả rồi. Thực ra, khi biết rằng đây là bài giảng mà thầy tự mình chuẩn bị, chỉnh sửa, suy nghĩ rồi lại suy nghĩ để đăng tải, em nghĩ rằng em cũng đã tham gia với một thái độ nhiệt tình, thật sự đã noi gương nhiệt huyết của thầy. Em hiện đang là sinh viên năm 4 khoa Kỹ thuật máy tính tại trường đại học. Em hiện đang theo học một khóa giảng về Spring Framework dành cho lập trình backend. Điều em cảm nhận được khi nghe bài giảng [Java roadmap] là thật sự đúng như lời thầy nói, em đã tự mình cảm nhận được rằng kỹ năng coding của em đã tăng lên gấp nhiều lần, như miếng bọt biển hút nước. Ngay cả trong dự án hiện tại, khi áp dụng những phần có thể áp dụng kỹ thuật lambda vừa học, em đã có thể trở nên quen thuộc hơn với lambda. Lần này cũng vậy, em xin cảm ơn vì thầy đã đến với một bài giảng tuyệt vời như thế này! Sau này cũng vậy, em sẽ cố gắng để trở thành một nhà phát triển không ngừng tiến bộ! Trên con đường trở thành nhà phát triển của em, Thầy Kim Young-han là một sự tồn tại vững chắc, như thể thầy cũng đang cùng bước đi. Em kính trọng thầy!! Em xin cảm ơn!

    • yh
      Instructor

      Bạn 열정맨, cảm ơn đánh giá khóa học của bạn, nó tiếp thêm sức mạnh cho tôi! Nếu thông qua khóa học này bạn đã cảm nhận được vẻ đẹp của phát triển, với tư cách là một nhà phát triển, bạn sẽ có thể liên tục phát triển tốt với sự tò mò và niềm vui :) Hãy học tập thật vui vẻ và kiên trì, tôi chúc bạn sẽ phát triển thật mạnh mẽ!

  • sskim91님의 프로필 이미지
    sskim91

    Reviews 10

    Average Rating 5.0

    5

    100% enrolled

    Mỗi khi nghe bài gi강의 của anh Yeonghan, tôi lại chạy hết mình để được nghe phần cuối cùng là "Tiếp theo". Bài giảng không cần phải nói, được cấu trúc một cách có hệ thống từng bước nên có thể đắm chìm đến cuối, và có nhiều kiến thức có thể áp dụng vào thực tế nên tôi được động viên suốt quá trình học. Đặc biệt trong phần "Tiếp theo", thông qua những trải nghiệm cá nhân và những câu chuyện hay của anh Yeonghan, tôi có thể vượt ra ngoài việc học ngôn ngữ lập trình, mà còn có được những insight tốt để phát triển như một developer và như một con người, điều này là nguồn động lực lớn. Cùng với cảm giác thành tựu khi hoàn thành khóa học, tôi có thể thu được những bài học quý giá nên luôn có lòng biết ơn. Chúc anh có những khoảng thời gian hạnh phúc trong kỳ nghỉ Tết Trung thu!

    • yh
      Instructor

      Cảm ơn anh Toughnam đã chăm chỉ theo dõi bài giảng lần này. Chúc anh có kỳ nghỉ lễ hạnh phúc bên gia đình :)

Limited time deal ends in 5 days

$1,224,733.00

24%

$59.40

yh's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!