Take a look at our Java books. Shulph carries a great selection of Java books, and we are always adding more.
Process large volumes of data in real-time while building high performance and robust data stream processing pipeline using the latest Apache Kafka 2.0 Key Features Solve practical large data and processing challenges with Kafka Tackle data processing challenges like late events, windowing, and watermarking Understand real-time streaming applications processing using Schema registry, Kafka connect, Kafka streams, and KSQL Book Description Apache Kafka is a great open source platform for handling your real-time data pipeline to ensure high-speed filtering and pattern matching on the ?y. In this book, you will learn how to use Apache Kafka for efficient processing of distributed applications and will get familiar with solving everyday problems in fast data and processing pipelines. This book focuses on programming rather than the configuration management of Kafka clusters or DevOps. It starts off with the installation and setting up the development environment, before quickly moving on to performing fundamental messaging operations such as validation and enrichment. Here you will learn about message composition with pure Kafka API and Kafka Streams. You will look into the transformation of messages in different formats, such asext, binary, XML, JSON, and AVRO. Next, you will learn how to expose the schemas contained in Kafka with the Schema Registry. You will then learn how to work with all relevant connectors with Kafka Connect. While working with Kafka Streams, you will perform various interesting operations on streams, such as windowing, joins, and aggregations. Finally, through KSQL, you will learn how to retrieve, insert, modify, and delete data streams, and how to manipulate watermarks and windows. What you will learn How to validate data with Kafka Add information to existing data ?ows Generate new information through message composition Perform data validation and versioning with the Schema Registry How to perform message Serialization and Deserialization How to perform message Serialization and Deserialization Process data streams with Kafka Streams Understand the duality between tables and streams with KSQL Who this book is for This book is for developers who want to quickly master the practical concepts behind Apache Kafka. The audience need not have come across Apache Kafka previously; however, a familiarity of Java or any JVM language will be helpful in understanding the code in this book.
Though your application serves its purpose, it might not be a high performer. Learn techniques to accurately predict code efficiency, easily dismiss inefficient solutions, and improve the performance of your application. Key Features Explains in detail different algorithms and data structures with sample problems and Java implementations where appropriate Includes interesting tips and tricks that enable you to efficiently use algorithms and data structures Covers over 20 topics using 15 practical activities and exercises Book Description Learning about data structures and algorithms gives you a better insight on how to solve common programming problems. Most of the problems faced everyday by programmers have been solved, tried, and tested. By knowing how these solutions work, you can ensure that you choose the right tool when you face these problems. This book teaches you tools that you can use to build efficient applications. It starts with an introduction to algorithms and big O notation, later explains bubble, merge, quicksort, and other popular programming patterns. You'll also learn about data structures such as binary trees, hash tables, and graphs. The book progresses to advanced concepts, such as algorithm design paradigms and graph theory. By the end of the book, you will know how to correctly implement common algorithms and data structures within your applications. What you will learn Understand some of the fundamental concepts behind key algorithms Express space and time complexities using Big O notation. Correctly implement classic sorting algorithms such as merge and quicksort Correctly implement basic and complex data structures Learn about different algorithm design paradigms, such as greedy, divide and conquer, and dynamic programming Apply powerful string matching techniques and optimize your application logic Master graph representations and learn about different graph algorithms Who this book is for If you want to better understand common data structures and algorithms by following code examples in Java and improve your application efficiency, then this is the book for you. It helps to have basic knowledge of Java, mathematics and object-oriented programming techniques.
Learn the fundamentals of Java EE 8 APIs to build effective web services Key Features Design modern and stylish web services with Java EE APIs Secure your web services with JSON Web Tokens Explore the advanced concepts of RESTful web services and the JAX-RS API Book Description Java Enterprise Edition is one of the leading application programming platforms for enterprise Java development. With Java EE 8 finally released and the first application servers now available, it is time to take a closer look at how to develop modern and lightweight web services with the latest API additions and improvements. Building RESTful Web Services with Java EE 8 is a comprehensive guide that will show you how to develop state-of-the-art RESTful web services with the latest Java EE 8 APIs. You will begin with an overview of Java EE 8 and the latest API additions and improvements. You will then delve into the details of implementing synchronous RESTful web services and clients with JAX-RS. Next up, you will learn about the specifics of data binding and content marshalling using the JSON-B 1.0 and JSON-P 1.1 APIs. This book also guides you in leveraging the power of asynchronous APIs on the server and client side, and you will learn to use server-sent events (SSEs) for push communication. The final section covers advanced web service topics such as validation, JWT security, and diagnosability. By the end of this book, you will have implemented several working web services and have a thorough understanding of the Java EE 8 APIs required for lightweight web service development. What you will learn Dive into the latest Java EE 8 APIs relevant for developing web services Use the new JSON-B APIs for easy data binding Understand how JSON-P API can be used for flexible processing Implement synchronous and asynchronous JAX-RS clients Use server-sent events to implement server-side code Secure Java EE 8 web services with JSON Web Tokens Who this book is for If you're a Java developer who wants to learn how to implement web services using the latest Java EE 8 APIs, this book is for you. Though no prior knowledge of Java EE 8 is required, experience with a previous Java EE version will be beneficial.
Gain insight into how hexagonal architecture can help to keep the cost of development low over the complete lifetime of an application Key Features Explore ways to make your software flexible, extensible, and adaptable Learn new concepts that you can easily blend with your own software development style Develop the mindset of building maintainable solutions instead of taking shortcuts Book Description We would all like to build software architecture that yields adaptable and flexible software with low development costs. But, unreasonable deadlines and shortcuts make it very hard to create such an architecture. Get Your Hands Dirty on Clean Architecture starts with a discussion about the conventional layered architecture style and its disadvantages. It also talks about the advantages of the domain-centric architecture styles of Robert C. Martin's Clean Architecture and Alistair Cockburn's Hexagonal Architecture. Then, the book dives into hands-on chapters that show you how to manifest a hexagonal architecture in actual code. You'll learn in detail about different mapping strategies between the layers of a hexagonal architecture and see how to assemble the architecture elements into an application. The later chapters demonstrate how to enforce architecture boundaries. You'll also learn what shortcuts produce what types of technical debt and how, sometimes, it is a good idea to willingly take on those debts. After reading this book, you'll have all the knowledge you need to create applications using the hexagonal architecture style of web development. What you will learn Identify potential shortcomings of using a layered architecture Apply methods to enforce architecture boundaries Find out how potential shortcuts can affect the software architecture Produce arguments for when to use which style of architecture Structure your code according to the architecture Apply various types of tests that will cover each element of the architecture Who this book is for This book is for you if you care about the architecture of the software you are building. To get the most out of this book, you must have some experience with web development. The code examples in this book are in Java. If you are not a Java programmer but can read object-oriented code in other languages, you will be fine. In the few places where Java or framework specifics are needed, they are thoroughly explained.
Build, train, and deploy intelligent applications using Java libraries Key Features Leverage the power of Java libraries to build smart applications Build and train deep learning models for implementing artificial intelligence Learn various algorithms to automate complex tasks Book Description Artificial intelligence (AI) is increasingly in demand as well as relevant in the modern world, where everything is driven by technology and data. AI can be used for automating systems or processes to carry out complex tasks and functions in order to achieve optimal performance and productivity. Hands-On Artificial Intelligence with Java for Beginners begins by introducing you to AI concepts and algorithms. You will learn about various Java-based libraries and frameworks that can be used in implementing AI to build smart applications. In addition to this, the book teaches you how to implement easy to complex AI tasks, such as genetic programming, heuristic searches, reinforcement learning, neural networks, and segmentation, all with a practical approach. By the end of this book, you will not only have a solid grasp of AI concepts, but you'll also be able to build your own smart applications for multiple domains. What you will learn Leverage different Java packages and tools such as Weka, RapidMiner, and Deeplearning4j, among others Build machine learning models using supervised and unsupervised machine learning techniques Implement different deep learning algorithms in Deeplearning4j and build applications based on them Study the basics of heuristic searching and genetic programming Differentiate between syntactic and semantic similarity among texts Perform sentiment analysis for effective decision making with LingPipe Who this book is for Hands-On Artificial Intelligence with Java for Beginners is for Java developers who want to learn the fundamentals of artificial intelligence and extend their programming knowledge to build smarter applications.
Learn Java programming concepts to design automation testing frameworks Key Features Learn to use Java program logic in application testing Understand various test-driven development concepts with Java tools Master Java with lots of programming examples Book Description Java is one of the most commonly-used software languages by programmers and developers. Are you from a non-technical background and looking to master Java for your automation needs? Then Hands-On Automation Testing with Java for Beginners is for you. This book provides you with efficient techniques to effectively handle Java-related automation projects. You will learn how to handle strings and their functions in Java. As you make your way through the book, you will get to grips with classes and objects, along with their uses. In the concluding chapters, you will learn about the importance of inheritance and exceptions with practical examples. By the end of this book, you will have gained comprehensive knowledge of Java. What you will learn Understand the practical usage of Java conditions and loops Write any Java program logic with strategies, tips, and tricks Leverage advanced topics in Java collections to solve Java-related problems Understand and use objects, classes, methods, and functions in Java Build Java automation frameworks from scratch Obtain knowledge of Java object-oriented programming (OOP) concepts with practical implementations Who this book is for Hands-On Automation Testing with Java for Beginners is for software developers who want to step into the world of software quality assurance and perform automation testing using various testing frameworks. Prior experience of writing tests in Java is assumed.
Build robust and reliable Java applications that works on modern infrastructure, such as containers and cloud, using the new features in Quarkus 1.0 Key Features Build apps with faster boot time and low RSS memory using the latest Quarkus 1.0 features Seamlessly integrate imperative and reactive programming models to build modern Java applications Discover effective solutions for running Java on serverless apps, microservices, containers, FaaS, and the cloud Book Description Quarkus is a new Kubernetes-native framework that allows Java developers to combine the power of containers, microservices, and cloud-native to build reliable applications. The book is a development guide that will teach you how to build Java-native applications using Quarkus and GraalVM. We start by learning about the basic concepts of a cloud-native application and its advantages over standard enterprise applications. Then we will quickly move on to application development, by installing the tooling required to build our first application on Quarkus. Next, we'll learn how to create a container-native image of our application and execute it in a Platform-as-a-Service environment such as Minishift. Later, we will build a complete real-world application that will use REST and the Contexts and Dependency injection stack with a web frontend. We will also learn how to add database persistence to our application using PostgreSQL. We will learn how to work with various APIs available to Quarkus such as Camel, Eclipse MicroProfile, and Spring DI. Towards the end, we will learn advanced development techniques such as securing applications, application configuration, and working with non-blocking programming models using Vert.x. By the end of this book, you will be proficient with all the components of Quarkus and develop-blazing fast applications leveraging modern technology infrastructure. What you will learn Build a native application using Quarkus and GraalVM Secure your applications using Elytron and the MicroProfile JWT extension Manage data persistence with Quarkus using PostgreSQL Use a non-blocking programming model with Quarkus Learn how to get Camel and Infinispan working in native mode Deploy an application in a Kubernetes-native environment using Minishift Discover Reactive Programming with Vert.x Who this book is for The book is for Java developers and software architects who are interested in learning a promising microservice architecture for building reliable and robust applications. Knowledge of Java, Spring Framework, and REST APIs is assumed.
Understand Gang of Four, architectural, functional, and reactive design patterns and how to implement them on modern Java platforms, such as Java 12 and beyond Key Features Learn OOP, functional, and reactive patterns for creating readable and maintainable code Explore architectural patterns and practices for building scalable and reliable applications Tackle all kinds of performance-related issues and streamline development using design patterns Book Description Java design patterns are reusable and proven solutions to software design problems. This book covers over 60 battle-tested design patterns used by developers to create functional, reusable, and flexible software. Hands-On Design Patterns with Java starts with an introduction to the Unified Modeling Language (UML), and delves into class and object diagrams with the help of detailed examples. You'll study concepts and approaches to object-oriented programming (OOP) and OOP design patterns to build robust applications. As you advance, you'll explore the categories of GOF design patterns, such as behavioral, creational, and structural, that help you improve code readability and enable large-scale reuse of software. You'll also discover how to work effectively with microservices and serverless architectures by using cloud design patterns, each of which is thoroughly explained and accompanied by real-world programming solutions. By the end of the book, you'll be able to speed up your software development process using the right design patterns, and you'll be comfortable working on scalable and maintainable projects of any size. What you will learn Understand the significance of design patterns for software engineering Visualize software design with UML diagrams Strengthen your understanding of OOP to create reusable software systems Discover GOF design patterns to develop scalable applications Examine programming challenges and the design patterns that solve them Explore architectural patterns for microservices and cloud development Who this book is for If you are a developer who wants to learn how to write clear, concise, and effective code for building production-ready applications, this book is for you. Familiarity with the fundamentals of Java is assumed.
An effective guide to designing, building, and deploying enterprise Java microservices with Eclipse MicroProfile Key Features Create cloud-native microservices with ease using this detailed guide Avoid vendor lock-in when implementing microservices using Eclipse MicroProfile Discover why MicroProfile is a great specification for building microservices in multi-cloud environments Book Description Eclipse MicroProfile has gained momentum in the industry as a multi-vendor, interoperable, community-driven specification. It is a major disruptor that allows organizations with large investments in enterprise Java to move to microservices without spending a lot on retraining their workforce. This book is based on MicroProfile 2.2, however, it will guide you in running your applications in MicroProfile 3.0. You'll start by understanding why microservices are important in the digital economy and how MicroProfile addresses the need for enterprise Java microservices. You'll learn about the subprojects that make up a MicroProfile, its value proposition to organizations and developers, and its processes and governance. As you advance, the book takes you through the capabilities and code examples of MicroProfile's subprojects - Config, Fault Tolerance, Health Check, JWT Propagation, Metrics, and OpenTracing. Finally, you'll be guided in developing a conference application using Eclipse MicroProfile, and explore possible scenarios of what's next in MicroProfile with Jakarta EE. By the end of this book, you'll have gained a clear understanding of Eclipse MicroProfile and its role in enterprise Java microservices. What you will learn Understand why microservices are important in the digital economy Analyze how MicroProfile addresses the need for enterprise Java microservices Test and secure your applications with Eclipse MicroProfile Get to grips with various MicroProfile capabilities such as OpenAPI and Typesafe REST Client Explore reactive programming with MicroProfile Stream and Messaging candidate APIs Discover and implement coding best practices using MicroProfile Who this book is for If you're a Java developer who wants to create enterprise microservices, this book is for you. Familiarity with Java EE and the concept of microservices will help you get the most out of this book.
Leverage the power of Java and deep learning to build production-grade Computer Vision applications Key Features Build real-world Computer Vision applications using the power of neural networks Implement image classification, object detection, and face recognition Know best practices on effectively building and deploying deep learning models in Java Book Description Although machine learning is an exciting world to explore, you may feel confused by all of its theoretical aspects. As a Java developer, you will be used to telling the computer exactly what to do, instead of being shown how data is generated; this causes many developers to struggle to adapt to machine learning. The goal of this book is to walk you through the process of efficiently training machine learning and deep learning models for Computer Vision using the most up-to-date techniques. The book is designed to familiarize you with neural networks, enabling you to train them efficiently, customize existing state-of-the-art architectures, build real-world Java applications, and get great results in a short space of time. You will build real-world Computer Vision applications, ranging from a simple Java handwritten digit recognition model to real-time Java autonomous car driving systems and face recognition models. By the end of this book, you will have mastered the best practices and modern techniques needed to build advanced Computer Vision Java applications and achieve production-grade accuracy. What you will learn Discover neural networks and their applications in Computer Vision Explore the popular Java frameworks and libraries for deep learning Build deep neural networks in Java Implement an end-to-end image classification application in Java Perform real-time video object detection using deep learning Enhance performance and deploy applications for production Who this book is for This book is for data scientists, machine learning developers and deep learning practitioners with Java knowledge who want to implement machine learning and deep neural networks in the computer vision domain. You will need to have a basic knowledge of Java programming.