Java 8 in Action Video Edition

Java 8 in Action Video Edition

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 11h 47m | 1.96 GB

Java 8 in Action is a clearly written guide to the features of Java 8. It begins with a practical introduction to lambdas, using real-world Java code. Next, it covers the new Streams API and shows how you can use it to make collection-based code radically easier to understand and maintain. It also explains other major Java 8 features including default methods, Optional, CompletableFuture, and the new Date and Time API.

With Java 8’s functional features you can now write more concise code in less time, and also automatically benefit from multicore architectures. It’s time to dig in!

Inside:

  • How to use Java 8’s powerful features
  • Writing effective multicore-ready applications
  • Refactoring, testing, and debugging
  • Adopting functional-style programming
  • Quizzes and quick-check questions

This book/course is made for programmers familiar with Java and basic OO programming.

Table of Contents

01 Java 8 – why should you care
02 Java’s place in the programming language ecosystem
03 Passing code to methods with behavior parameterization
04 Functions in Java
05 Passing code – an example
06 Streams
07 Default methods
08 Passing code with behavior parameterization
09 Behavior parameterization
10 Tackling verbosity
11 Lambda expressions
12 Where and how to use lambdas
13 Putting lambdas into practice – the execute around pattern
14 Using functional interfaces
15 Type checking, type inference, and restrictions
16 Method references
17 Putting lambdas and method references into practice!
18 Similar ideas from mathematics
19 Introducing streams
20 Getting started with streams
21 Streams vs. collections
22 Stream operations
23 Working with streams
24 Mapping
25 Finding and matching
26 Reducing
27 Putting it all into practice
28 Putting numerical streams into practice – Pythagorean triples
29 Building streams
30 Streams from functions – creating infinite streams!
31 Collecting data with streams
32 Reducing and summarizing
33 Generalized summarization with reduction
34 Grouping
35 Collecting data in subgroups
36 Partitioning
37 The Collector interface
38 Developing your own collector for better performance
39 Parallel data processing and performance
40 Measuring stream performance
41 Using parallel streams correctly
42 The fork_join framework
43 Work stealing
44 Spliterator
45 Implementing your own Spliterator
46 Refactoring, testing, and debugging
47 From imperative data processing to Streams
48 Refactoring object-oriented design patterns with lambdas
49 Observer
50 Testing lambdas
51 Default methods
52 API version 2
53 Usage patterns for default methods
54 Resolution rules
55 Using Optional as a better alternative to null
56 Problems with null
57 Introducing the Optional class
58 Chaining Optional objects with flatMap
59 Default actions and unwrapping an optional
60 Practical examples of using Optional
61 CompletableFuture – composable asynchronous programming
62 Implementing an asynchronous API
63 Make your code non-blocking
64 Using a custom Executor
65 Pipelining asynchronous tasks
66 Combining two CompletableFutures—dependent and independent
67 Reacting to a CompletableFuture completion
68 New Date and Time API
69 Instant – a date and time for machines
70 Manipulating, parsing, and formatting dates
71 Working with different time zones and calendars
72 Thinking functionally
73 What’s functional programming
74 Referential transparency
75 Recursion vs. iteration
76 Functional programming techniques
77 Persistent data structures
78 Lazy evaluation with streams
79 Your own lazy list
80 Pattern matching
81 Miscellany
82 Blending OOP and FP – comparing Java 8 and Scala
83 Basic data structures – List, Set, Map, Tuple, Stream, Option
84 Functions
85 Classes and traits
86 Conclusions and where next for Java
87 What’s ahead for Java
88 Richer forms of generics
89 Value types