Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
dTub
Скачать

Deep Dive into Gatherers - JEP Cafe #24

Автор: Java

Загружено: 2025-11-13

Просмотров: 4998

Описание:

This JEP Café takes you through everything you can do with Gatherers, added to JDK 24 and available in JDK 25, the version you are going to use for your business applications. Along with many examples, it shows you the basics of mapping and filtering, how you can create and manage an internal mutable state to limit your stream, and sort them. It shows you how you can properly interrupt a stream when you need, and how you can avoid resource leaking and race conditions in the use of the API. It also shows you how you can leverage some available optimizations by declaring your integrators greedy when you can. One of the greatest features of the Stream API is that you can decide to go parallel. So parallel Gatherers are covered, along with the use of non-parallel Gatherers in parallel streams. At the end of this video you will know eveything you need to write efficient and correct Gatherers, but also when you should use them, and when you should stay away from them.

You can watch all the episodes on the JEP Café series here:    • JEP Café  

00:00 Intro
01:22 Modeling intermediate operations with Gatherers
04:36 Gatherer interface, gather() method and Gatherers factor class
05:43 Writing a mapping Gatherer
10:14 Writing a filtering Gatherer
11:50 Writing a first, simple, but buggy flat-mapper
13:12 Exploring the Downstream object
16:28 Checking the rejecting state of a Downstream
18:45 Warning about the non-thread safety of Downstream
20:07 Checking the rejecting state for each push in the flat-mapping Gatherer
22:38 Closing properly your stream in the flat-mapping Gatherer
24:00 Fixing the race condition in the flat-mapping Gatherer
25:16 Protecing the flat-mapping Gatherer against NullPointerException
26:05 Writing a skipping Gatherer with an internal mutable state
29:21 Writing a limiting Gatherer
29:40 Writing a distinct Gatherer with an internal HashSet
30:30 Declaring the distinct Gatherer a Greedy Gatherer
32:26 Writing a sorting Gatherer with an internal TreeSet and a Finisher
35:06 Checking the rejecting state of a Downstream in a Finisher
36:53 Using a sequential Gatherer in a parallel stream
40:59 Creating parallel Gatherers with an internal state and a Combiner
44:24 Chaining Gatherer with the andThen() method
45:45 Using mapConcurrent() from the Gatherers factory class
49:12 That's it for today, talk to you soon!


⎯⎯⎯⎯⎯⎯ Resources ⎯⎯⎯⎯⎯⎯

◦ Previous episode ➱    • Better Java Streams with Gatherers - JEP C...  
◦ The JEP 485 about Gatherers ➱ https://openjdk.org/jeps/485
◦ Nicolai on Gatherers ➱    • Better Java Streams with Gatherers - Insid...   and    • Implementing New Java Stream Operations  
◦ Dev.java ➱ https://dev.java
◦ Inside.java ➱ https://inside.java
◦ JDK 25 ➱ https://openjdk.org/projects/jdk/25
◦ OpenJDK ➱ https://openjdk.org
◦ Oracle Java ➱ https://www.oracle.com/java/

Deep Dive into Gatherers - JEP Cafe #24

Поделиться в:

Доступные форматы для скачивания:

Скачать видео mp4

  • Информация по загрузке:

Скачать аудио mp3

Похожие видео

array(20) { ["uTPRTkny7kQ"]=> object(stdClass)#10274 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "uTPRTkny7kQ" ["related_video_title"]=> string(20) "Integrity by Default" ["posted_time"]=> string(25) "2 недели назад" ["channelName"]=> NULL } ["ny4CqBX_kaQ"]=> object(stdClass)#10285 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "ny4CqBX_kaQ" ["related_video_title"]=> string(64) "From Cowboy Mode to Careful Stewardship - Inside Java Podcast 41" ["posted_time"]=> string(25) "3 недели назад" ["channelName"]=> NULL } ["aFWc00r6I9U"]=> object(stdClass)#10275 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "aFWc00r6I9U" ["related_video_title"]=> string(110) "Вышел Spring Framework 7! 5 вещей, которые стоит изучить ПРЯМО СЕЙЧАС!" ["posted_time"]=> string(19) "3 дня назад" ["channelName"]=> NULL } ["X0-TGhktFnE"]=> object(stdClass)#10272 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "X0-TGhktFnE" ["related_video_title"]=> string(54) "All New Java Language Features Since Java 21 #RoadTo25" ["posted_time"]=> string(25) "2 месяца назад" ["channelName"]=> NULL } ["BB09kOFGovA"]=> object(stdClass)#10267 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "BB09kOFGovA" ["related_video_title"]=> string(56) "Java 25 - Better Language, Better APIs by Nicolai Parlog" ["posted_time"]=> string(25) "4 недели назад" ["channelName"]=> NULL } ["KZeIEiBrT_w"]=> object(stdClass)#10253 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "KZeIEiBrT_w" ["related_video_title"]=> string(48) "The Strange Math That Predicts (Almost) Anything" ["posted_time"]=> string(25) "3 месяца назад" ["channelName"]=> NULL } ["4UDwrfTNmo4"]=> object(stdClass)#10264 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "4UDwrfTNmo4" ["related_video_title"]=> string(21) "Modern Java in Action" ["posted_time"]=> string(19) "1 год назад" ["channelName"]=> NULL } ["CT1wGTwOfg0"]=> object(stdClass)#10284 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "CT1wGTwOfg0" ["related_video_title"]=> string(148) "Встроенные функции устойчивости Spring Boot 4: попрощайтесь с внешними зависимостями!" ["posted_time"]=> string(21) "6 дней назад" ["channelName"]=> NULL } ["PLTjRvDozrdlyjm_nKyYt4b5C1zx4Xdaut"]=> object(stdClass)#10269 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(34) "PLTjRvDozrdlyjm_nKyYt4b5C1zx4Xdaut" ["related_video_title"]=> string(14) "Java Tutorials" ["posted_time"]=> string(0) "" ["channelName"]=> NULL } ["IRqTbgC2JLU"]=> object(stdClass)#10287 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "IRqTbgC2JLU" ["related_video_title"]=> string(78) "Growing Quarkus in a Spring Boot World – Kevin Dubois (IBM) | The Marco Show" ["posted_time"]=> string(21) "7 дней назад" ["channelName"]=> NULL } ["TwyhnBDOHPw"]=> object(stdClass)#10263 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "TwyhnBDOHPw" ["related_video_title"]=> string(79) "Kubernetes — Простым Языком на Понятном Примере" ["posted_time"]=> string(25) "3 месяца назад" ["channelName"]=> NULL } ["4sjJmKXLnuY"]=> object(stdClass)#10273 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "4sjJmKXLnuY" ["related_video_title"]=> string(84) "Новые лучшие практики Java от Стивена Коулборна" ["posted_time"]=> string(23) "1 месяц назад" ["channelName"]=> NULL } ["ZK6XWSCCgPQ"]=> object(stdClass)#10268 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "ZK6XWSCCgPQ" ["related_video_title"]=> string(90) "Harvard CS50 prof David J. Malan on why you should learn programming slowly [Podcast #197]" ["posted_time"]=> string(21) "5 дней назад" ["channelName"]=> NULL } ["Eua3nTkye2Y"]=> object(stdClass)#10265 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "Eua3nTkye2Y" ["related_video_title"]=> string(61) "Try the New Valhalla EA Build - Inside Java Newscast #100👑" ["posted_time"]=> string(22) "13 дней назад" ["channelName"]=> NULL } ["PLlFc5cFwUnmz1TwkP9SKCHU978dqLTANB"]=> object(stdClass)#10266 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(34) "PLlFc5cFwUnmz1TwkP9SKCHU978dqLTANB" ["related_video_title"]=> string(22) "Talking Kotlin Podcast" ["posted_time"]=> string(0) "" ["channelName"]=> NULL } ["F89sNgG9dRY"]=> object(stdClass)#10254 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "F89sNgG9dRY" ["related_video_title"]=> string(40) "Serialization 2 0: A Marshalling Update!" ["posted_time"]=> string(22) "11 дней назад" ["channelName"]=> NULL } ["izLzgnMMjbU"]=> object(stdClass)#10255 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "izLzgnMMjbU" ["related_video_title"]=> string(68) "Supercharge your JVM Performance with Project Leyden and Spring Boot" ["posted_time"]=> string(25) "2 недели назад" ["channelName"]=> NULL } ["XpunFFS-n8I"]=> object(stdClass)#10261 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "XpunFFS-n8I" ["related_video_title"]=> string(36) "How Netflix Uses Java - 2025 Edition" ["posted_time"]=> string(27) "6 месяцев назад" ["channelName"]=> NULL } ["5LPM-16nqnc"]=> object(stdClass)#10262 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "5LPM-16nqnc" ["related_video_title"]=> string(76) "Cyber Security Full Course FREE | Cyber Security Course (2026) | Intellipaat" ["posted_time"]=> string(0) "" ["channelName"]=> NULL } ["NF4CpL_EWFI"]=> object(stdClass)#10260 (5) { ["video_id"]=> int(9999999) ["related_video_id"]=> string(11) "NF4CpL_EWFI" ["related_video_title"]=> string(66) "Value Classes Heap Flattening - What to expect from JEP 401 #JVMLS" ["posted_time"]=> string(25) "2 недели назад" ["channelName"]=> NULL } }
Integrity by Default

Integrity by Default

From Cowboy Mode to Careful Stewardship - Inside Java Podcast 41

From Cowboy Mode to Careful Stewardship - Inside Java Podcast 41

Вышел Spring Framework 7! 5 вещей, которые стоит изучить ПРЯМО СЕЙЧАС!

Вышел Spring Framework 7! 5 вещей, которые стоит изучить ПРЯМО СЕЙЧАС!

All New Java Language Features Since Java 21 #RoadTo25

All New Java Language Features Since Java 21 #RoadTo25

Java 25 - Better Language, Better APIs by Nicolai Parlog

Java 25 - Better Language, Better APIs by Nicolai Parlog

The Strange Math That Predicts (Almost) Anything

The Strange Math That Predicts (Almost) Anything

Modern Java in Action

Modern Java in Action

Встроенные функции устойчивости Spring Boot 4: попрощайтесь с внешними зависимостями!

Встроенные функции устойчивости Spring Boot 4: попрощайтесь с внешними зависимостями!

Java Tutorials

Java Tutorials

Growing Quarkus in a Spring Boot World – Kevin Dubois (IBM) | The Marco Show

Growing Quarkus in a Spring Boot World – Kevin Dubois (IBM) | The Marco Show

Kubernetes — Простым Языком на Понятном Примере

Kubernetes — Простым Языком на Понятном Примере

Новые лучшие практики Java от Стивена Коулборна

Новые лучшие практики Java от Стивена Коулборна

Harvard CS50 prof David J. Malan on why you should learn programming slowly [Podcast #197]

Harvard CS50 prof David J. Malan on why you should learn programming slowly [Podcast #197]

Try the New Valhalla EA Build - Inside Java Newscast #100👑

Try the New Valhalla EA Build - Inside Java Newscast #100👑

Talking Kotlin Podcast

Talking Kotlin Podcast

Serialization 2 0: A Marshalling Update!

Serialization 2 0: A Marshalling Update!

Supercharge your JVM Performance with Project Leyden and Spring Boot

Supercharge your JVM Performance with Project Leyden and Spring Boot

How Netflix Uses Java - 2025 Edition

How Netflix Uses Java - 2025 Edition

Cyber Security Full Course FREE | Cyber Security Course (2026) | Intellipaat

Cyber Security Full Course FREE | Cyber Security Course (2026) | Intellipaat

Value Classes Heap Flattening - What to expect from JEP 401 #JVMLS

Value Classes Heap Flattening - What to expect from JEP 401 #JVMLS

© 2025 dtub. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: [email protected]