{"product_id":"139490","title":"Modern Java in Action ","description":"\u003ccenter\u003e\u003cdiv style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/tmgdisk01.cafe24.com\/images\/vs\/4172\/sv\/3jXPBp6Xtg59YhInj1QCiltKxEg1nj.png?v=1765075097\" style=\"max-width:100%;max-height:10px\"\u003e\u003c\/div\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\n\n\u003cdiv style=\"width:95%\"\u003e\n\n\u003cdiv style=\"text-align:center;font-size:30px;font-weight:bolder;line-height:1.6em\"\u003e Modern Java in Action \u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"border-bottom:1px;border-bottom-style:dotted;border-color:;padding-bottom:20px\"\u003e\u003ccenter\u003e\u003ctable align=\"center\" width=\"100%\"\u003e\u003ctbody style=\"border:0px\"\u003e\n\n\u003ctr\u003e\u003ctd align=\"center\" style=\"line-height:1.2em;text-align:center;font-size:18px;color:black;font-weight:bold;padding-bottom:20px;\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\u003ctr\u003e\u003ctd style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/image.yes24.com\/goods\/77125987\/XL\" style=\"max-width:100%;height:auto\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/center\u003e\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;{split_style6}padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e Description \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;word-break:break-all;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eBook Introduction\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cdiv\u003e\u003cdiv\u003e The biggest change in the 18 years since Java 1.0 came out is Java 8.\u003cbr\u003e With Modern Java since Java 8, you can use all your existing Java code as is, and you can also implement clearer and more concise code with new features, syntax, and design patterns. \u003cbr\u003eThis book introduces Java developers to key features added to Java 8, 9, and 10, including lambdas, streams, functional programming, the Java module system, parallelism and shared mutable data, and behavior parameterization, inspired by functional languages.\u003cbr\u003e We will reward your efforts with crystal-clear examples and detailed information.\u003cbr\u003e This book is a revised edition of Java 8 in Action, with chapters 1, 8, 10, 4, 17, and 21 being newly added or significantly revised.\u003cbr\u003e All chapters except the appendix have been revised and supplemented.\u003cbr\u003e\n\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eindex\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e About the translator and author\u003cbr\u003e Translator's Note\u003cbr\u003e Author's Note\u003cbr\u003e About this book\u003cbr\u003e Cover illustration introduction\u003cbr\u003e\u003cbr\u003e \u003cb\u003e[ PART I BASICS ]\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e CHAPTER 1 Java 8, 9, 10, 11: What's Going On?\u003cbr\u003e 1.1 What is the flow of history?\u003cbr\u003e 1.2 Why is Java still changing?\u003cbr\u003e 1.3 Java functions\u003cbr\u003e 1.4 Stream\u003cbr\u003e 1.5 Default Methods and Java Modules \u003cbr\u003e1.6 Other useful ideas from functional programming\u003cbr\u003e 1.7 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 2 Passing Behavior Parameterization Code\u003cbr\u003e 2.1 Responding to Changing Requirements\u003cbr\u003e 2.2 Motion parameterization\u003cbr\u003e 2.3 Simplifying complex processes\u003cbr\u003e 2.4 Practical Examples\u003cbr\u003e 2.5 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 3 Lambda Expressions\u003cbr\u003e 3.1 What is Lambda?\u003cbr\u003e 3.2 Where and how to use lambda?\u003cbr\u003e 3.3 Using Lambda: The Run-Around Pattern\u003cbr\u003e 3.4 Using functional interfaces\u003cbr\u003e 3.5 Type checking, type inference, and constraints\u003cbr\u003e 3.6 Method Reference\u003cbr\u003e 3.7 Using Lambda and Method References\u003cbr\u003e 3.8 Useful methods for combining lambda expressions\u003cbr\u003e 3.9 Similar mathematical concepts\u003cbr\u003e 3.10 In conclusion\u003cbr\u003e\u003cbr\u003e \u003cb\u003e[ PART II Functional Data Processing ]\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e CHAPTER 4: Stream Introduction\u003cbr\u003e 4.1 What is a Stream?\u003cbr\u003e 4.2 Starting the Stream\u003cbr\u003e 4.3 Streams and Collections\u003cbr\u003e 4.4 Stream Operations\u003cbr\u003e 4.5 Roadmap\u003cbr\u003e 4.6 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 5 Stream Utilization\u003cbr\u003e 5.1 Filtering\u003cbr\u003e 5.2 Stream Slicing\u003cbr\u003e 5.3 Mapping\u003cbr\u003e 5.4 Search and Matching\u003cbr\u003e 5.5 Reducing\u003cbr\u003e 5.6 Field Practice\u003cbr\u003e 5.7 Numeric Streams \u003cbr\u003e5.8 Creating a Stream\u003cbr\u003e 5.9 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 6 Collecting Data with Streams\u003cbr\u003e 6.1 What is a collector?\u003cbr\u003e 6.2 Reducing and Summarizing\u003cbr\u003e 6.3 Grouping\u003cbr\u003e 6.4 Split\u003cbr\u003e 6.5 Collector Interface\u003cbr\u003e 6.6 Improving Performance by Implementing a Custom Collector\u003cbr\u003e 6.7 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 7 Parallel Data Processing and Performance\u003cbr\u003e 7.1 Parallel Streams\u003cbr\u003e 7.2 Fork\/Join Framework\u003cbr\u003e 7.3 Spliterator Interface\u003cbr\u003e 7.4 In conclusion\u003cbr\u003e\u003cbr\u003e \u003cb\u003e[ PART III Effective Programming with Streams and Lambdas ]\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e CHAPTER 8 Collection API Improvements\u003cbr\u003e 8.1 Collection Factory\u003cbr\u003e 8.2 List and Set Handling\u003cbr\u003e 8.3 Map Processing\u003cbr\u003e 8.4 Improved ConcurrentHashMap\u003cbr\u003e 8.5 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 9 Refactoring, Testing, and Debugging\u003cbr\u003e 9.1 Refactoring to improve readability and flexibility\u003cbr\u003e 9.2 Refactoring Object-Oriented Design Patterns with Lambdas\u003cbr\u003e 9.3 Lambda Testing\u003cbr\u003e 9.4 Debugging\u003cbr\u003e 9.5 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 10 Domain-Specific Languages ​​Using Lambda\u003cbr\u003e 10.1 Domain-Specific Language\u003cbr\u003e 10.2 A small DSL for the latest Java API\u003cbr\u003e 10.3 Patterns and Techniques for Creating DSLs in Java\u003cbr\u003e 10.4 Real-Life Java 8 DSLs \u003cbr\u003e10.5 In conclusion\u003cbr\u003e\u003cbr\u003e \u003cb\u003e[ PART IV Everyday with Java ]\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e CHAPTER 11 Optional Class Instead of Null\u003cbr\u003e 11.1 How to handle situations where there is no value?\u003cbr\u003e 11.2 Introducing the Optional Class\u003cbr\u003e 11.3 Optional Application Pattern\u003cbr\u003e 11.4 Practical Examples Using Optional\u003cbr\u003e 11.5 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 12 NEW DATE AND TIME API\u003cbr\u003e 12.1 LocalDate, LocalTime, Instant, Duration, and Period classes\u003cbr\u003e 12.2 Date Adjustment, Parsing, and Formatting\u003cbr\u003e 12.3 How to use different time zones and calendars\u003cbr\u003e 12.4 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 13 Default Methods\u003cbr\u003e 13.1 Changing APIs\u003cbr\u003e 13.2 What is a default method?\u003cbr\u003e 13.3 Default Method Utilization Patterns\u003cbr\u003e 13.4 Interpretation Rules\u003cbr\u003e 13.5 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 14 The Java Module System\u003cbr\u003e 14.1 Pressure: Software Analogy\u003cbr\u003e 14.2 Why the Java Module System Was Designed\u003cbr\u003e 14.3 Java Modules: The Big Picture\u003cbr\u003e 14.4 Developing Applications with the Java Module System\u003cbr\u003e 14.5 Using Multiple Modules\u003cbr\u003e 14.6 Compiling and Packaging\u003cbr\u003e 14.7 Automatic Module\u003cbr\u003e 14.8 Module Definition and Syntax\u003cbr\u003e 14.9 Bigger Examples and More Ways to Learn\u003cbr\u003e 14.10 In conclusion\u003cbr\u003e \u003cbr\u003e\u003cb\u003e[ PART V Improved Java Concurrency ]\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e CHAPTER 15: CompletableFuture and the Basics of Reactive Programming Concepts\u003cbr\u003e 15.1 Evolution of Java Support for Concurrency\u003cbr\u003e 15.2 Synchronous and Asynchronous APIs\u003cbr\u003e 15.3 Box and Channel Models\u003cbr\u003e 15.4 Concurrency with CompletableFuture and Combinators\u003cbr\u003e 15.5 Publish-Subscribe and Reactive Programming\u003cbr\u003e 15.6 Reactive Systems vs. Reactive Programming\u003cbr\u003e 15.7 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 16 CompletableFuture: Reliable Asynchronous Programming\u003cbr\u003e 16.1 Simple Uses of Future\u003cbr\u003e 16.2 Implementing Asynchronous APIs\u003cbr\u003e 16.3 Creating Non-Block Code\u003cbr\u003e 16.4 Creating an Asynchronous Work Pipeline\u003cbr\u003e 16.5 How to Respond to CompletableFuture Termination\u003cbr\u003e 16.6 Roadmap\u003cbr\u003e 16.7 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 17 Reactive Programming\u003cbr\u003e 17.1 Reactive Manifesto\u003cbr\u003e 17.2 Reactive Streams and the Flow API\u003cbr\u003e 17.3 Using the reactive library RxJava\u003cbr\u003e 17.4 In conclusion\u003cbr\u003e\u003cbr\u003e \u003cb\u003ePART VI: Functional Programming and the Future of Java Evolution\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e CHAPTER 18 Thinking in a Functional Perspective \u003cbr\u003e18.1 System Implementation and Maintenance\u003cbr\u003e 18.2 What is functional programming?\u003cbr\u003e 18.3 Recursion and Iteration\u003cbr\u003e 18.4 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 19 FUNCTIONAL PROGRAMMING TECHNIQUES\u003cbr\u003e 19.1 Functions are everywhere\u003cbr\u003e 19.2 Persistent Data Structures\u003cbr\u003e 19.3 Streams and Lazy Evaluation\u003cbr\u003e 19.4 Pattern Matching\u003cbr\u003e 19.5 Other Information\u003cbr\u003e 19.6 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 20 Harmonizing OOP and FP: Comparing Java and Scala\u003cbr\u003e 20.1 Introduction to Scala\u003cbr\u003e 20.2 Functions\u003cbr\u003e 20.3 Classes and Traits\u003cbr\u003e 20.4 In conclusion\u003cbr\u003e\u003cbr\u003e CHAPTER 21 Conclusion and the Future of Java\u003cbr\u003e 21.1 Java 8 Feature Review\u003cbr\u003e 21.2 Java 9 Module System\u003cbr\u003e 21.3 Java 10 Local Variable Type Inference\u003cbr\u003e 21.4 The Future of Java\u003cbr\u003e 21.5 Java Evolves Faster\u003cbr\u003e 21.6 Conclusion\u003cbr\u003e\u003cbr\u003e supplement\u003cbr\u003e _APPENDIX A Other Language Updates\u003cbr\u003e _APPENDIX B Other Library Updates\u003cbr\u003e _APPENDIX Executing Multiple Operations in Parallel on a C Stream\u003cbr\u003e _APPENDIX D Lambdas and JVM Bytecode\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eDetailed image\u003c\/b\u003e \u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\u003cdiv\u003e\u003cimg src=\"https:\/\/image.yes24.com\/momo\/TopCate2473\/MidCate001\/247207044.jpg\" border=\"0\" alt=\"Detailed Image 1\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003ePublisher's Review\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e \u003cb\u003eLearn the all-new features of Java 8, 9, and 10 in a refreshing way!\u003c\/b\u003e\u003cbr\u003e \u003cbr\u003eThis book shows you how to practically apply the latest Java features to your applications.\u003cbr\u003e We will reward your efforts with crystal-clear examples and detailed information.\u003cbr\u003e You'll also learn how to leverage your existing knowledge of core Java, as well as modern additions like the Streams API, the Java module system, new approaches to concurrency, and functional concepts, to help you implement readable and maintainable code.\u003cbr\u003e\u003cbr\u003e \u003cb\u003eWhy should I use this new feature?\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e For example, among the newly added features, lambda allows for more concise Java programs to be implemented.\u003cbr\u003e Most readers will have already had experience registering objects containing methods to be called when an event occurs, using event handlers, callbacks, etc.\u003cbr\u003e Lambda allows this feature to be used in a wider range of fields. \u003cbr\u003eIn other words, you can simply pass code or methods that can be executed during some operation as arguments using lambda and its friend, method reference.\u003cbr\u003e Ultimately, you'll find that this functionality is used more often than you might expect—from parameterizing methods in code to complex queries that ingest data using the new Streams API.\u003cbr\u003e\u003cbr\u003e \u003cb\u003eStructure of this book\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e This book is largely composed of six sections: 'Basics', 'Functional Data Processing', 'Effective Programming with Streams and Lambdas', 'Everyday Java', 'Improved Java Concurrency', and 'Functional Programming and the Future of Java Evolution'.\u003cbr\u003e The chapters introduced in Parts 1 and 2 should be read in order to understand the context, but the remaining four parts are independent and can be read in any order. \u003cbr\u003eMost chapters include a variety of quizzes to help you practice.\u003cbr\u003e\u003cbr\u003e _Part 1: Provides three chapters covering content suitable for readers who are new to Java 8.\u003cbr\u003e By the end of Part 1, you'll understand what lambda expressions are and be able to use them to write concise, flexible code that can easily adapt to changing requirements.\u003cbr\u003e\u003cbr\u003e _Part 2: Detailing the new stream API.\u003cbr\u003e By the end of Part 2, you'll know what streams are and how to use them to implement concise, efficient applications that process collections of data.\u003cbr\u003e\u003cbr\u003e _Part 3: We will look at various Java 8 and Java 9 related contents that will help you use Java more effectively and improve your code with the latest techniques.\u003cbr\u003e Because the goal is to explain the most up-to-date programming concepts possible, other parts of this book do not utilize material covered in Part 3.\u003cbr\u003e \u003cbr\u003e_Part 4: We'll look at various new features added to Java 8 and Java 9 to make it easier and more reliable to write code that composes your projects.\u003cbr\u003e\u003cbr\u003e _Part 5: We will go beyond the easy parallel processing methods using streams described in Chapters 6 and 7 and look at advanced techniques for structuring parallel programming in Java.\u003cbr\u003e\u003cbr\u003e _Part 6: Let's switch gears a bit and compare the features of Scala and Java 8 to see how to effectively implement functional programming in Java.\u003cbr\u003e\u003cbr\u003e _Appendix: Appendix A summarizes minor features of the Java 8 language that were not covered in the book.\u003cbr\u003e Appendix B describes features added to the Java library that may be useful.\u003cbr\u003e Appendix C is an extension of Part 2 and describes advanced usage of streams.\u003cbr\u003e Appendix D explains the details of how the Java compiler implements lambda expressions.\u003cbr\u003e\u003cbr\u003e \u003cb\u003eContents of this book\u003c\/b\u003e\u003cbr\u003e \u003cbr\u003e- How to use the powerful new features of Java 8, Java 9, and Java 10\u003cbr\u003e - How to implement applications that effectively utilize multicore\u003cbr\u003e - Refactoring, testing, debugging\u003cbr\u003e - Application of functional programming\u003cbr\u003e - Appendix containing quizzes, surprise questions, and updates \u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e GOODS SPECIFICS \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eDate of issue:\u003c\/strong\u003e August 1, 2019\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003ePage count, weight, size:\u003c\/strong\u003e 692 pages | 926g | 183*235*35mm\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN13:\u003c\/strong\u003e 9791162242025\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN10:\u003c\/strong\u003e 1162242027 \u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cspan\u003e\u003c\/span\u003e\n\n\u003c\/center\u003e\n\n\n\u003c\/center\u003e","brand":"LIBRAIRIE COREENNE","offers":[{"title":"Default Title","offer_id":43893358624810,"sku":"139490","price":45.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/2750\/5962\/files\/3bab6f93badc53c4077e02843d79a2b7.jpg?v=1765398351","url":"https:\/\/librairie.coreenne.fr\/en\/products\/139490","provider":"LIBRAIRIE COREENNE","version":"1.0","type":"link"}