6+ Hours of Video Instruction
Java 8 Lambda Expressions and Streams LiveLessons, 2nd Edition, covers the most important new features introduced in Java 8. The video training is presented by Marty Hall, a bestselling author, world-renowned instructor, and president of the training company coreservlets.com.
If you are comfortable with previous Java versions and want to learn the new Java 8 features as quickly as possible, continue on: You are in the right place. If, however, you are new to Java and want learn the full range of Java programming, but in the context of the latest version (Java 8), please see the video Learning Modern Java: A Crash Course Using Java 8 LiveLessons instead.
This LiveLessons video explains the syntax and usage of Java 8 lambda expressions, shows the prebuilt functions, covers streams thoroughly, describes best practices for the use of parallel operations, provides examples of the types of applications to which lambdas and streams are well suited, and shows how applying the power of streams can dramatically simplify file I/O.
The final version of Java 8 was released in 2014, and it is by far the most significant upgrade to the Java programming language since at least 2004, probably since Java’s inception. In general, Java 8's high-level goals were to make code more flexible, to better use multiple cores, and to more easily deal with large data sets. Specifically, there are four main reasons that it is important for existing Java programmers to know the new Java 8 features:
The source code repository for this LiveLesson can be downloaded from http://www.coreservlets.com/java-8-tutorial. This site contains the complete source code for all examples in the video, as well as exercises and exercise solutions for each topic.
About the Instructor
A popular and entertaining speaker, Marty has spoken at conferences and user groups around the world, including Comdex, the Web 2.0 Expo, and five times at JavaOne. Marty is also adjunct faculty in the Johns Hopkins University part-time graduate program in Computer Science, where he directs the Java and Web-related concentration areas.
Marty is also the lead author of six popular Java EE books from Pearson, including Core Servlets and JSP, and is the coauthor of the upcoming JSF 2.3 edition of Core JSF.
You can see more details on Marty's bio page.
What You Will Learn
Who Should Take This Course
Lesson 1: Installation, Setup, and Quick Review of Supporting Topics
Lesson 1 shows you where to get the Java development kit and the official API documentation and how to create and execute Java programs in the Eclipse development environment. It also provides a quick review of pre-lambda handlers and building generic methods and classes.
Lesson 2: Lambda Expressions in Java 8—Part 1: Basics
Lesson 2 is the first of four lessons on lambda expressions. Lambdas are Java's way of representing functions. The lesson introduces lambda expressions and illustrates how their use can make your code more flexible and reusable. The lesson closes with two examples of applications that would be difficult and cumbersome without lambdas but that are relatively simple and short with them. The first is a numerical integration routine and the second is a reusable tool for collecting performance-timing results.
Lesson 3: Lambda Expressions in Java 8—Part 2
Lesson 3 covers four topics: the @FunctionalInterface annotation, method references, lambda variable scoping rules, and the rules regarding effectively final local variables. The lesson shows you how the use of @FunctionalInterface improves the internal implementation of the previous numerical-integration and timing applications and how method references make it simpler to use the numerical integration code.
Lesson 4: Lambda Expressions in Java 8—Part 3: Lambda Building Blocks in java.util.function
Lesson 4 looks at the pre-built functions in the java.util.function package. The lesson starts with the simply typed versions and shows how using one of them can shorten numerical-integration code. It then looks at five generically typed versions: Predicate, Function, Consumer, Supplier, and BinaryOperator. Most Java developers are not used to thinking about functional programming, so this lesson shows how applying functions can make certain applications shorter, simpler, easier to maintain, and more reusable.
Lesson 5: Lambda Expressions in Java 8—Part 4
Lesson 5 discusses two features of Java interfaces: default methods and static methods. It then uses this idea to improve the previous application that collected timing information. The second half of the lesson illustrates the power that comes from having methods that return lambdas, known as higher order functions.
Lesson 6: Streams in Java 8—Part 1
Lesson 6 is the first of three lessons on streams. It provides an overview of streams and explains their benefits. It then shows you how to create streams and output them into standard Java. It also explains data structures and four of the most important stream methods: forEach, filter, map, and findFirst. The lesson closes with a discussion of lazy evaluation and shows you how it can dramatically improve data processing performance.
Lesson 7: Streams in Java 8—Part 2
Lesson 7 starts out by discussing IntStream and DoubleStream, which are specializations of streams for dealing with numbers. It then looks in great detail at reduction operations: operations that combine stream values to produce a single result. The lesson starts out with simple ones like min, max, and sum and then finishes with the general-purpose reduce method. Finally, it discusses other stream methods, such as limit, skip, sorted, and anyMatch.
Lesson 8: Streams in Java 8—Part 3
Lesson 8 starts off by looking at fancy ways to output, partition, or group streams. It then explains how to use parallel streams—one of the most powerful stream features—and gives a number of examples where parallel streams do or do not work effectively. The lesson closes with an explanation of so-called "infinite" streams: streams that have no preset size but rather use a generator function to build the elements as they are needed.
Lesson 9: Simplified File I/O—Applying the Power of Streams in Java 8
Lesson 9 looks at File I/O. It starts by explaining both file reading and file writing, but in particular, it shows how applying the power of streams can dramatically simplify reading and processing files and folders. Specifically, it illustrates why the new Files.lines method is such a huge improvement over alternatives available in earlier Java versions.
About LiveLessons Video Training
The LiveLessons Video Training series publishes hundreds of hands-on, expert-led video tutorials covering a wide selection of technology topics designed to teach you the skills you need to succeed. This professional and personal technology video series features world-leading author instructors published by your trusted technology brands: Addison-Wesley, Cisco Press, IBM Press, Pearson IT Certification, Prentice Hall, Sams, and Que. Topics include: IT certification, programming, Web development, mobile development, home and office technologies, business and management, and more. View all LiveLessons on InformIT at: http://www.informit.com/livelessons.