Description
WILEY Java 8 In Action Lambdas Streams And Functional Style Programming 2017 Edition by MARIO FUSCO,
About the Book: Java 8 in ActionEvery new version of Java is important, but Java 8 is a game changer. Java 8 in Action is a clearly written guide to the new 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.ContentsPart 1 FundamentalsChapter 1 Java 8: why should you care?Why is Java still changing?Functions in JavaStreamsDefault methodsOther good ideas from functional programmingChapter 2 Passing code with behavior parameterizationCoping with changing requirementsBehavior parameterizationTackling verbosityReal-world examplesChapter 3 Lambda expressionsLambdas in a nutshellWhere and how to use lambdasPutting lambdas into practice: the execute around patternUsing functional interfacesType checking, type inference and restrictionsMethod referencesPutting lambdas and method references into practice!Useful methods to compose lambda expressionsSimilar ideas from mathematicsPart 2 Functional-style data processingChapter 4 Introducing streamsWhat are streams?Getting started with streamsStreams vs. collectionsStream operationsChapter 5 Working with streamsFiltering and slicingMappingFinding and matchingReducingPutting it all into practiceNumeric streamsBuilding streamsChapter 6 Collecting data with streamsCollectors in a nutshellReducing and summarizingGroupingPartitioningThe Collector interfaceDeveloping your own collector for better performanceChapter 7 Parallel data processing and performanceParallel streamsThe fork/join frameworkSpliteratorPart 3 Effective Java 8 programmingChapter 8 Refactoring, testing and debuggingRefactoring for improved readability and flexibilityRefactoring object-oriented design patterns with lambdasTesting lambdasDebuggingChapter 9 Default methodsEvolving APIsDefault methods in a nutshellUsage patterns for default methodsResolution rulesChapter 10 Using Optional as a better alternative to nullHow do you model the absence of a value?Introducing the Optional classPatterns for adopting OptionalPractical examples of using OptionalChapter 11 CompletableFuture: composable asynchronous programmingFuturesImplementing an asynchronous APIMake your code non-blockingPipelining asynchronous tasksReacting to a CompletableFuture completionChapter 12 New Date and Time APILocalDate, LocalTime, Instant, Duration and PeriodManipulating, parsing and formatting datesWorking with different time zones and calendarsPart 4 Beyond JavaChapter 13 Thinking functionallyImplementing and maintaining systemsWhats functional programming?Recursion vs. iterationChapter 14 Functional programming techniquesFunctions everywherePersistent data structuresLazy evaluation with streamsPattern matchingMiscellanyChapter 15 Blending OOP and FP: comparing Java 8 and ScalaIntroduction to ScalaFunctionsClasses and traitsChapter 16 Conclusions and where next for JavaReview of Java 8 featuresWhats ahead for Java