Mastering Java 11
Author: Dr. Edward Lavieri
Publisher: Packt Publishing Ltd
Update your Java knowledge with the latest features of Java 11, such as the low-Overhead Garbage Collector, Local-Variable Syntax for Lambda Parameters, and Dynamic Class-File Constants Key Features Explore the latest features in Java 9,Java 10, and Java 11 Enhance your Java application development and migration approaches Full coverage of modular Java applications, G1 Garbage Collector, JMH Book Description Java 11 is a long-term release and its new features add to the richness of the language. It emphasizes variable-type inference, performance improvements, along with simplified multithreading. The Java platform has a special emphasis on modularity, making this the programming platform of choice for millions of developers. The modern Java platform can be used to build robust software applications, including enterprise-level and mobile applications. Fully updated for Java 11, this book stands to help any Java developer enjoy the richness of the Java programming language. Mastering Java 11 is your one-stop guide to fully understanding recent Java platform updates. It contains detailed explanations of the recent features introduced in Java 9, Java 10, and Java 11 along with obtaining practical guidance on how to apply the new features. As you make your way through the chapters, you'll discover further information on the developments of the Java platform and learn about the changes introduced by the variable handles and Project Coin, along with several enhancements in relation to import statements processing. In the concluding chapters, you'll learn to improve your development productivity, making your applications more efficient. You'll also be able to get to grips with the command-line flags with respect to various utilities and the command-line utility changes featured in the current Java platform. By the end of the book, you'll have obtained an advanced level understanding of the Java platform and its recent changes. What you will learn Write modular Java applications Migrate existing Java applications to modular ones Understand how the default G1 garbage collector works Leverage the possibilities provided by the newly introduced Java Shell Performance test your application effectively with the JVM harness Learn how Java supports the HTTP 2.0 standard Find out how to use the new Process API Explore the additional enhancements and features of Java 9, 10, and 11 Who this book is for Mastering Java 11 is for experienced Java developers with a solid understanding of the Java language and want to progress to an advanced level.
Java 9 Cookbook
Author: Mohamed Sanaulla, Nick Samoylov
Publisher: Packt Publishing Ltd
Java 9 High Performance
Author: Mayur Ramgir, Nick Samoylov
Publisher: Packt Publishing Ltd
Best practices to adapt and bottlenecks to avoid About This Book Tackle all kinds of performance-related issues and streamline your development Master the new features and new APIs of Java 9 to implement highly efficient and reliable codes Gain an in-depth knowledge of Java application performance and obtain best results from performance testing Who This Book Is For This book is for Java developers who would like to build reliable and high-performance applications. Prior Java programming knowledge is assumed. What You Will Learn Work with JIT compilers Understand the usage of profiling tools Generate JSON with code examples Leverage the command-line tools to speed up application development Build microservices in Java 9 Explore the use of APIs to improve application code Speed up your application with reactive programming and concurrency In Detail Finally, a book that focuses on the practicalities rather than theory of Java application performance tuning. This book will be your one-stop guide to optimize the performance of your Java applications. We will begin by understanding the new features and APIs of Java 9. You will then be taught the practicalities of Java application performance tuning, how to make the best use of garbage collector, and find out how to optimize code with microbenchmarking. Moving ahead, you will be introduced to multithreading and learning about concurrent programming with Java 9 to build highly concurrent and efficient applications. You will learn how to fine tune your Java code for best results. You will discover techniques on how to benchmark performance and reduce various bottlenecks in your applications. We'll also cover best practices of Java programming that will help you improve the quality of your codebase. By the end of the book, you will be armed with the knowledge to build and deploy efficient, scalable, and concurrent applications in Java. Style and approach This step-by-step guide provides real-world examples to give you a hands-on experience.
Mastering advanced features of Java and implement them to build amazing projects Key Features Take advantage of Java's new modularity features to write real-world applications that solve a variety of problems Explore the major concepts introduced with Java 9, including modular programming, HTTP 2.0, API changes, and more Get to grips with tools, techniques and best practices to enhance application development Book Description Java 9 and its new features add to the richness of the language; Java is one of the languages most used by developers to build robust software applications. Java 9 comes with a special emphasis on modularity with its integration with Jigsaw. This course is your one-stop guide to mastering the language. You'll be provided with an overview and explanation of the new features introduced in Java 9 and the importance of the new APIs and enhancements. Some new features of Java 9 are ground-breaking; if you are an experienced programmer, you will be able to make your enterprise applications leaner by learning these new features. You'll be provided with practical guidance in applying your newly acquired knowledge of Java 9 and further information on future developments of the Java platform. This course will improve your productivity, making your applications faster. Next, you'll go on to implement everything you've learned by building 10 cool projects. You will learn to build an email filter that separates spam messages from all your inboxes, a social media aggregator app that will help you efficiently track various feeds, and a microservice for a client/server note application, to name just a few. By the end of this course, you will be well acquainted with Java 9 features and able to build your own applications and projects. This Learning Path contains the best content from the following two recently published Packt products: •Mastering Java 9 •Java 9 Programming Blueprints What you will learn Package Java applications as modules using the Java Platform Module System Implement process management in Java using the all-new process handling API Integrate your applications with third-party services in the cloud Interact with mail servers, using JavaMail to build an application that filters spam messages Use JavaFX to build rich GUI-based applications, which are an essential element of application development Leverage the possibilities provided by the newly introduced Java shell Test your application's effectiveness with the JVM harness See how Java 9 provides support for the HTTP 2.0 standard Who this book is for This learning path is for Java developers who are looking to move a level up and learn how to build robust applications in the latest version of Java.
Java 9 Modularity
Author: Sander Mak, Paul Bakker
Publisher: "O'Reilly Media, Inc."
The upcoming Java 9 module system will affect existing applications and offer new ways of creating modular and maintainable applications. With this hands-on book, Java developers will learn not only about the joys of modularity, but also about the patterns needed to create truly modular and reliable applications. Authors Sander Mak and Paul Bakker teach you the concepts behind the Java 9 module system, along with the new tools it offers. You’ll also gain learn how to modularize existing code and how to build new Java applications in a modular way. Understand Java 9 module system concepts Master the patterns and practices for building truly modular applications Migrate existing applications and libraries to Java 9 modules Use JDK 9 tools for modular development and migration
Java 9 Concurrency Cookbook
Author: Javier Fernández Gonzalez
Publisher: Packt Publishing Ltd
Master the art of fast, effective Java development with the power of concurrent and parallel programming About This Book Get detailed coverage of important recipes on multi-threading and parallel programming This book takes a close look at the Java 9 APIs and their impact on concurrency See practical examples on thread safety, high-performance classes, safe sharing, and a whole lot more Who This Book Is For The book is for Java developers and programmers at an intermediate to advanced level. It will be especially useful for developers who want to take advantage of task-based recipes using Java 9's concurrent API to program thread-safe solutions. What You Will Learn Find out to manage the basic components of the Java Concurrency API Use synchronization mechanisms to avoid data race conditions and other problems of concurrent applications Separate the thread management from the rest of the application with the Executor framework Solve problems using a parallelized version of the divide and conquer paradigm with the Fork / Join framework Process massive data sets in an optimized way using streams and reactive streams See which data structures we can use in concurrent applications and how to use them Practice efficient techniques to test concurrent applications Get to know tips and tricks to design concurrent applications In Detail Writing concurrent and parallel programming applications is an integral skill for any Java programmer. Java 9 comes with a host of fantastic features, including significant performance improvements and new APIs. This book will take you through all the new APIs, showing you how to build parallel and multi-threaded applications. The book covers all the elements of the Java Concurrency API, with essential recipes that will help you take advantage of the exciting new capabilities. You will learn how to use parallel and reactive streams to process massive data sets. Next, you will move on to create streams and use all their intermediate and terminal operations to process big collections of data in a parallel and functional way. Further, you'll discover a whole range of recipes for almost everything, such as thread management, synchronization, executors, parallel and reactive streams, and many more. At the end of the book, you will learn how to obtain information about the status of some of the most useful components of the Java Concurrency API and how to test concurrent applications using different tools. Style and approach This recipe-based book will allow you to explore the exciting capabilities of concurrency in Java. After reading this book, you will be able to comfortably build parallel applications in Java 9.
Gain a deep understanding of the complexity of data structures and algorithms and discover the right way to write more efficient code About This Book This book provides complete coverage of reactive and functional data structures Based on the latest version of Java 9, this book illustrates the impact of new features on data structures Gain exposure to important concepts such as Big-O Notation and Dynamic Programming Who This Book Is For This book is for Java developers who want to learn about data structures and algorithms. Basic knowledge of Java is assumed. What You Will Learn Understand the fundamentals of algorithms, data structures, and measurement of complexity Find out what general purpose data structures are, including arrays, linked lists, double ended linked lists, and circular lists Get a grasp on the basics of abstract data types—stack, queue, and double ended queue See how to use recursive functions and immutability while understanding and in terms of recursion Handle reactive programming and its related data structures Use binary search, sorting, and efficient sorting—quicksort and merge sort Work with the important concept of trees and list all nodes of the tree, traversal of tree, search trees, and balanced search trees Apply advanced general purpose data structures, priority queue-based sorting, and random access immutable linked lists Gain a better understanding of the concept of graphs, directed and undirected graphs, undirected trees, and much more In Detail Java 9 Data Structures and Algorithms covers classical, functional, and reactive data structures, giving you the ability to understand computational complexity, solve problems, and write efficient code. This book is based on the Zero Bug Bounce milestone of Java 9. We start off with the basics of algorithms and data structures, helping you understand the fundamentals and measure complexity. From here, we introduce you to concepts such as arrays, linked lists, as well as abstract data types such as stacks and queues. Next, we'll take you through the basics of functional programming while making sure you get used to thinking recursively. We provide plenty of examples along the way to help you understand each concept. You will get the also get a clear picture of reactive programming, binary searches, sorting, search trees, undirected graphs, and a whole lot more! Style and approach This book will teach you about all the major algorithms in a step-by-step manner. Special notes on the Big-O Notation and its impact on algorithms will give you fresh insights.
Java 9 with JShell
Author: Gaston C. Hillar
Publisher: Packt Publishing Ltd
Explore Java 9 with JShell and UML About This Book A full account of Java 9's new features This tutorial emphasises fluency using JShell exercises Get a thorough introduction to contract programming code reuse via Java generics Learn how to use the new module system How to use proper functional programming style inside Java 9 Who This Book Is For This book can be understood by anyone who is a graduate of computer science or someone who has just begun working as a software engineer. Basically, an understanding of an object-oriented programming language like Python, C++ or indeed, an earlier Java version is sufficient. It would be helpful to have participated in the full product cycle of a software engineering project. What You Will Learn Engage with object-oriented programming in Java 9, starting with code snippets in JShell Optimize your code, applying functional programming features Discover the advantages of modularity Become very proficient at using JShell itself Learn the new approach to Java programming, which uses the REPL as a prototyping tool In Detail The release of Java 9 has brought many subtle and not-so-subtle changes to the way in which Java programmers approach their code. The most important ones are definitely the availability of a REPL, known as JShell, which will make experiments and prototyping much more straightforward than the old IDE-based project-led approach. Another, more subtle change can be seen in the module system, which will lead to more modularized, maintainable code. The techniques to take full advantage of object-oriented code, functional programming and the new modularity features in Java 9 form the main subjects of this book. Each chapter will add to the full picture of Java 9 programming starting out with classes and instances and ending with generics and modularity in Java. Style and approach You will learn by doing: : using JShell as their prototyping environment, you will take full advantage of the new features of Java 9, in particular the full module system and the functional features of Java 9.. There won't be any theory, only small and medium-sized exampled enabling the reader to use the new Java features in professional software engineering projects.
Java 9 Revealed
Author: Kishori Sharan
Explore the new Java 9 modules, SDK, JDK, JVM, JShell and more in this comprehensive book that covers what’s new in Java 9 and how to use these new features. Java 9 Revealed is for experienced Java programmers looking to migrate to Java 9. Author Kishori Sharan begins by covering how to develop Java applications using the new module system introduced in Java 9 and how to use the JShell tool in Java 9 for prototyping, compiling and testing. The book provides extensive coverage of new Java 9 features, such as the new layout of the modular JDK/JRE runtime image, new convenience factory methods for creating collections, the new spin-wait hints introduced to improve performance of spin loops in your code, and the new Desktop API for implementing platform-specific desktop features. Along the way you will also learn how to use the Reactive Streams API in Java 9 and, most importantly, this book will show you the breaking changes in Java 9. What You'll Learn How JShell facilitates rapid development, code evaluation, and testing Discover what is new in the Process API Inspect a thread’s stack with the Stack-Walking API Use the jlink tool to create a custom runtime image Work with HTML5 Javadoc and use the new search feature in Javadoc Learn how to use new methods and collectors in the Streams API Learn how to create a custom logger to log messages from platform classes and how to use JVM logs Learn about new methods in the Optional class and how to use them Learn how to compare arrays and slices of arrays Learn how to use the enhanced try-with-resources blocks Make your object deserialization more secure by using object deserialization filters Who This Book Is For Experienced Java programmers and developers.
The Java Module System
Author: Nicolai Parlog
Publisher: Pearson Professional
The Java Module System, aka "Project Jigsaw," gives Java developers the ability to define and enforce modularity without an outside framework. In The Java Module System, readers will learn how the module system improves reliability and maintainability and can be used to reduce tight coupling of system components. They then discover how to build, compile, and run their own fully modular applications with best practices and expert techniques. Along the way, readers will also explore Java 9's compatibility challenges and how to migrate their application to the module system. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
Exploring Java 9
Author: Fu Cheng
Discover all the new features and changes in Java 9, including module systems—JPMS or Project Jigsaw. This book covers the whole Java application development life cycle. You'll review all the important concepts, including module descriptor, unnamed module, automatic module, and command line tools. Exploring Java 9 also serves as a practical guide for migration to module systems. Code samples from real-world scenarios solidify a foundation for learning and development and allow you to apply best practices in actual development. Additionally, you'll learn about concurrency, ECMAScript 6 features in Nashorn and Parser API, stack-walking API, Stream and Optional, utilities classes, and I/O. And it’s now possible to build modularized applications in Java. You'll see how JPMS affects not only the JDK itself, but also applications that are developed upon it. What You'll Learn • Build modularized applications in Java • Migrate to module systems • Master enhanced method handles Who This Book Is ForJava developers with basic development skills
Author: Jeff Magee, Jeff Kramer
Publisher: Wiley Global Education
Concurrency provides a thoroughly updated approach to the basic concepts and techniques behind concurrent programming. Concurrent programming is complex and demands a much more formal approach than sequential programming. In order to develop a thorough understanding of the topic Magee and Kramer present concepts, techniques and problems through a variety of forms: informal descriptions, illustrative examples, abstract models and concrete Java examples. These combine to provide problem patterns and associated solution techniques which enable students to recognise problems and arrive at solutions. New features include: New chapters covering program verification and logical properties. More student exercises. Supporting website contains an updated version of the LTSA tool for modelling concurrency, model animation, and model checking. Website also includes the full set of state models, java examples, and demonstration programs and a comprehensive set of overhead slides for course presentation.
Spring 5.0 Cookbook
Author: Sherwin John Calleja Tragura
Publisher: Packt Publishing Ltd
Over 100 hands-on recipes to build web applications easily and efficiently IN Spring 5.0 About This Book Solve real-world problems using the latest features of the Spring framework like Reactive Streams and the Functional Web Framework. Learn how to use dependency injection and aspect-oriented programming to write compartmentalized and testable code. Understand when to choose between Spring MVC and Spring Web Reactive for your projects Who This Book Is For Java developers who would like to gain in-depth knowledge of how to overcome problems that they face while developing great Spring applications. It will also cater to Spring enthusiasts, users and experts who need an arena for comparative analysis, new ideas and inquiries on some details regarding Spring 5.0 and its previous releases. A basic knowledge of Spring development is essential What You Will Learn Understand how functional programming and concurrency in JDK 1.9 works, and how it will affect Spring 5.0 Learn the importance and application of reactive programming in creating services, and also the process of creating asynchronous MVC applications Implement different Spring Data modules Integrate Spring Security to the container Create applications and deploy using Spring Boot Conceptualize the architecture behind Microservices and learn the details of its implementation Create different test cases for the components of Spring 5.0 components In Detail The Spring framework has been the go-to framework for Java developers for quite some time. It enhances modularity, provides more readable code, and enables the developer to focus on developing the application while the underlying framework takes care of transaction APIs, remote APIs, JMX APIs, and JMS APIs. The upcoming version of the Spring Framework has a lot to offer, above and beyond the platform upgrade to Java 9, and this book will show you all you need to know to overcome common to advanced problems you might face. Each recipe will showcase some old and new issues and solutions, right from configuring Spring 5.0 container to testing its components. Most importantly, the book will highlight concurrent processes, asynchronous MVC and reactive programming using Reactor Core APIs. Aside from the core components, this book will also include integration of third-party technologies that are mostly needed in building enterprise applications. By the end of the book, the reader will not only be well versed with the essential concepts of Spring, but will also have mastered its latest features in a solution-oriented manner. Style and Approach This book follows a cookbook style approach, presenting a problem and showing you how to overcome it with useful recipes. The examples provided will help you code along as you learn.
Explore the power of distributed computing to write concurrent, scalable applications in Java About This Book Make the best of Java 9 features to write succinct code Handle large amounts of data using HPC Make use of AWS and Google App Engine along with Java to establish a powerful remote computation system Who This Book Is For This book is for basic to intermediate level Java developers who is aware of object-oriented programming and Java basic concepts. What You Will Learn Understand the basic concepts of parallel and distributed computing/programming Achieve performance improvement using parallel processing, multithreading, concurrency, memory sharing, and hpc cluster computing Get an in-depth understanding of Enterprise Messaging concepts with Java Messaging Service and Web Services in the context of Enterprise Integration Patterns Work with Distributed Database technologies Understand how to develop and deploy a distributed application on different cloud platforms including Amazon Web Service and Docker CaaS Concepts Explore big data technologies Effectively test and debug distributed systems Gain thorough knowledge of security standards for distributed applications including two-way Secure Socket Layer In Detail Distributed computing is the concept with which a bigger computation process is accomplished by splitting it into multiple smaller logical activities and performed by diverse systems, resulting in maximized performance in lower infrastructure investment. This book will teach you how to improve the performance of traditional applications through the usage of parallelism and optimized resource utilization in Java 9. After a brief introduction to the fundamentals of distributed and parallel computing, the book moves on to explain different ways of communicating with remote systems/objects in a distributed architecture. You will learn about asynchronous messaging with enterprise integration and related patterns, and how to handle large amount of data using HPC and implement distributed computing for databases. Moving on, it explains how to deploy distributed applications on different cloud platforms and self-contained application development. You will also learn about big data technologies and understand how they contribute to distributed computing. The book concludes with the detailed coverage of testing, debugging, troubleshooting, and security aspects of distributed applications so the programs you build are robust, efficient, and secure. Style and approach This is a step-by-step practical guide with real-world examples.