Solve everything from the basics of querydsl to practical use all at once!
Advanced Java - Part 3 by Kim Young-han, Lambda, Streams, Functional Programming - Open Date Confirmed
Hello everyone, after two years we have finally completed the Java roadmap.
The last lecture of the Java roadmap , Kim Young-han's Practical Java - Advanced Part 3, Lambda, Stream, Functional Programming
The opening schedule has been confirmed to be between Tuesday, March 25th and Friday, March 28th.
Lecture time: 16 hours 40 minutes
Number of lectures: 97
Lecture PDF Material: 387 pages
[Course Introduction]
Learn new syntax and techniques frequently used in modern Java, such as lambdas, streams, and functional programming.
In this lecture, I will teach you how to apply and utilize technologies such as lambda, streams, and functional programming in practice, beyond simply knowing them.
[Summary of lecture contents]
The main lecture contents are as follows.
1. Why Lambda is needed
Learn how lambdas play a vital role in modern Java, both for clean, concise code and for easily leveraging advanced features like parallel processing.
2. Lambda
You will learn the definition, syntax, and usage tips of lambda through real code examples. You will clearly understand how it differs from the existing method and what makes it attractive.
3. Functional interface
Functional interfaces, an essential concept used with lambda!
We will explain why functional programming is possible and how to easily utilize the various functional interfaces built into the Java standard API.
4. Using Lambda
How can we apply lambdas in real-world code?
Let's learn the core usage of lambda to simplify repetitive patterns and complex logic with examples.
5. Lambda vs Anonymous Class
We compare and analyze in which situations lambdas are more efficient and in which cases anonymous classes should be used.
6. Method Reference
The method reference syntax added in Java 8 takes functional programming to the next level of cleanliness. We will explain how the method reference syntax works and what are some practical examples of its use.
7. Stream API1 - Basics
The Stream API presents a new paradigm for handling Java collections with lambdas. We will organize the stream structure and basic usage in an easy-to-understand manner for beginners.
8. Stream API2 - Features
Let's take a closer look at the core features provided by streams, such as filtering, mapping, sorting, and reducing. You can learn how to write code more intuitively and concisely.
9. Stream API3 - Collector
Learn the concept of Collector, which is utilized in streams for efficient data collection and processing. You can acquire skills essential for practical work, such as collect(), grouping, and partitioning.
10. Optional
Let's make proper use of Optional, which cleanly resolves null handling. We will cover various methods to prevent NPE problems that are frequent in practice, such as isPresent(), orElse(), and orElseThrow().
11. Default method
Let's take a look at a new aspect of Java interfaces: default methods.
Learn the correct usage practices, along with how to maintain compatibility when extending interfaces.
12. Parallel Streams
Parallel processing for high performance! Learn about ForkJoin pools, multi-core utilization know-how through stream APIs, and precautions that may arise in parallel streams.
13. Functional Programming
All features added after Java 8, such as lambda, stream API, and Optional, reflect the functional programming paradigm. We will teach you how to write more efficient code by combining object-oriented languages and the functional paradigm.
[Full Table of Contents]
1. Why Lambda is needed
* Project environment configuration
* Why Lambda is Needed 1
* Why Lambda is Needed 2
* Why Lambda is Needed 3
* Function vs Method
* Lambda start
2. Lambda
* Lambda definition
* Functional interface
* Lambda and Signature
* Lambda and omission
* Lambda propagation
* Higher order functions
* Problem and solution 1
* Problem and solution 2
* Problem and solution 3
* organize
3. Functional interface
* Functional interfaces and generics1
* Functional interfaces and generics2
* Lambda and target type
* Basic functional interface
* Specialized functional interface
* Other functional interfaces
* Problems and solutions
* organize
4. Using Lambda
* Create a filter 1
* Create a filter 2
* Map Creation 1
* Map Making 2
* Using filters and maps1
* Using filters and maps 2
* Create a stream 1
* Create a stream 2
* Create a stream 3
* Create a stream 4
* organize
5. Lambda vs Anonymous Class
* Lambda vs Anonymous Classes1
* Lambda vs Anonymous Class2
* organize
6. Method Reference
* Why method references are needed
* Method Reference 1 - Start
* Method Reference 2 - Parameter 1
* Method Reference 3 - Reference an instance method of an arbitrary object
* Method Reference 4 - Utilization 1
* Method Reference 5 - Utilization 2
* Method Reference 6 - Parameter 2
* organize
7. Stream API1 - Basics
* Start Stream API
* What is the Stream API?
* Pipeline configuration
* Delayed operation
* Delayed computation and optimization
8. Stream API2 - Features
* Create a stream
* Intermediate operations
* FlatMap
* Optional brief description
* Final operation
* Basic specialized stream
9. Stream API3 - Collector
* Collector 1
* Collector 2
* Downstream collector 1
* Downstream collector 2
* organize
10. Optional
* Why optionals are needed
* Creating an Optional and obtaining its value
* Optional value handling
* Immediate and delayed assessment1
* Immediate and delayed evaluation2
* Immediate and delayed evaluation 3
* orElse() vs orElseGet()
* Practical Use 1 - Finding Address
* Practical Application 2 - Delivery
* Optional - Best Practice
* organize
11. Default method
* Why default methods appeared
* Introducing the default method
* Correct usage of default methods
* organize
12. Parallel Streams
* Single stream
* Use thread directly
* Use thread pool
* ForkJoin pattern
* ForkJoin Framework 1 - Introduction
* ForkJoin Framework 2 - Work Stealing
* Work stealing algorithm
* ForkJoin Framework 3 - Common Pool
* Java Parallel Streams
* Precautions when using parallel streams
* Use separate pool
* organize
13. Functional Programming
* Programming paradigm
* What is functional programming?
* Java and Functional Programming 1
* Java and Functional Programming 2
* Java and Functional Programming 3
* organize
thank you