Understanding Java from the JVM up gives you a solid foundation to grow your expertise and take on advanced techniques for performance, concurrency, containerization, and more. In The Well-Grounded Java Developer, Second Edition you will learn: The new Java module system and why you should use it Bytecode for the JVM, including operations and classloading Performance tuning the JVM Working with Java’s built-in concurrency and expanded options Programming in Kotlin and Clojure on the JVM Maximizing the benefits from your build/CI tooling with Maven and Gradle Running the JVM in containers Planning for future JVM releases The Well-Grounded Java Developer, Second Edition introduces both the modern innovations and timeless fundamentals you need to know to become a Java master. Authors Ben Evans, Martijn Verburg, and Jason Clark distill their decades of experience as Java Champions, veteran developers, and key contributors to the Java ecosystem into this clear and practical guide. You’ll discover how Java works under the hood and learn design secrets from Java’s long history. Each concept is illustrated with hands-on examples, including a fully modularized application/library and creating your own multithreaded application. Foreword by Heinz Kabutz. About the technology Java is the beating heart of enterprise software engineering. Developers who really know Java can expect easy job hunting and interesting work. Written by experts with years of boots-on-the-ground experience, this book upgrades your Java skills. It dives into powerful features like modules and concurrency models and even reveals some of Java’s deep secrets. About the book With The Well-Grounded Java Developer, Second Edition you will go beyond feature descriptions and learn how Java operates at the bytecode level. Master high-value techniques for concurrency and performance optimization, along with must-know practices for build, test, and deployment. You’ll even look at alternate JVM languages like Kotlin and Clojure. Digest this book and stand out from the pack. What's inside The new Java module system Performance tuning the JVM Maximizing CI/CD with Maven and Gradle Running the JVM in containers Planning for future JVM releases About the reader For intermediate Java developers. About the author Benjamin J. Evans is a senior principal engineer at Red Hat. Martijn Verburg is the principal SWE manager for Microsoft’s Java Engineering Group. Both Benjamin and Martijn are Java Champions. Jason Clark is a principal engineer and architect at New Relic. Table of Contents PART 1 - FROM 8 TO 11 AND BEYOND! 1 Introducing modern Java 2 Java modules 3 Java 17 PART 2 - UNDER THE HOOD 4 Class files and bytecode 5 Java concurrency fundamentals 6 JDK concurrency libraries 7 Understanding Java performance PART 3 - NON-JAVA LANGUAGES ON THE JVM 8 Alternative JVM languages 9 Kotlin 10 Clojure: A different view of programming PART 4 - BUILD AND DEPLOYMENT 11 Building with Gradle and Maven 12 Running Java in containers 13 Testing fundamentals 14 Testing beyond JUnit PART 5 - JAVA FRONTIERS 15 Advanced functional programming 16 Advanced concurrent programming 17 Modern internals 18 Future Java
Summary The Well-Grounded Java Developer offers a fresh and practical look at new Java 7 features, new JVM languages, and the array of supporting technologies you need for the next generation of Java-based software. About the Book The Well-Grounded Java Developer starts with thorough coverage of Java 7 features like try-with-resources and NIO.2. You'll then explore a cross-section of emerging JVM-based languages, including Groovy, Scala, and Clojure. You will find clear examples that are practical and that help you dig into dozens of valuable development techniques showcasing modern approaches to the dev process, concurrency, performance, and much more. Written for readers familiar with Java. No experience with Java 7 or new JVM languages required. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book. What's Inside New Java 7 features Tutorials on Groovy, Scala, and Clojure Discovering multicore processing and concurrency Functional programming with new JVM languages Modern approaches to testing, build, and CI Table of Contents PART 1 DEVELOPING WITH JAVA 7 Introducing Java 7 New I/O PART 2 VITAL TECHNIQUES Dependency Injection Modern concurrency Class files and bytecode Understanding performance tuning PART 3 POLYGLOT PROGRAMMING ON THE JVM Alternative JVM languages Groovy: Java's dynamic friend Scala: powerful and concise Clojure: safer programming PART 4 CRAFTING THE POLYGLOT PROJECT Test-driven development Build and continuous integration Rapid web development Staying well-grounded
Effectively reading and understanding existing code is a developer’s superpower. In this book, you’ll master techniques for code profiling, advanced debugging, and log evaluation to find and fix bugs and performance problems. Troubleshooting Java: Read, debug, and optimize JVM applications teaches you how to better understand Java application code. It’s filled with code investigation techniques for tricky issues like uncovering glitches in code logic or locating intermittent runtime problems. Armed with the tools and practices in this invaluable guide, you’ll save time whenever you need to identify performance issues, understand dependencies, discover the root cause of crashes, or interpret unexpected results. Whether you’re a senior software engineer or you’re just getting started, Troubleshooting Java: Read, debug, and optimize JVM applications will help you in the fundamental task of understanding how your applications work. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
This updated edition of the Nutshell guide not only helps experienced Java programmers get the most out of versions through Java 17, it also serves as a learning path for new developers. Chock-full of examples that demonstrate how to take complete advantage of modern Java APIs and development best practices, this thoroughly revised book includes new material on recent enhancements to the Java object model that every developer should know about. The first section provides a fast-paced, no-fluff introduction to the Java programming language and the core runtime aspects of the Java platform. The second section is a reference to core concepts and APIs that explains how to perform real programming work in the Java environment. Get up to speed on language details through Java 17 Learn object-oriented programming using basic Java syntax Explore generics, enumerations, annotations, and lambda expressions Understand techniques used in object-oriented design Examine how concurrency and memory are intertwined Work with Java collections and handle common data formats Delve into Java's latest I/O APIs including asynchronous channels Become familiar with development tools in OpenJDK
The latest edition of Java in a Nutshell is designed to help experienced Java programmers get the most out of Java 7 and 8, but it’s also a learning path for new developers. Chock full of examples that demonstrate how to take complete advantage of modern Java APIs and development best practices, the first section of this thoroughly updated book provides a fast-paced, no-fluff introduction to the Java programming language and the core runtime aspects of the Java platform. The second section is a reference to core concepts and APIs that shows you how to perform real programming work in the Java environment. Get up to speed on language details, including Java 8 changes Learn object-oriented programming, using basic Java syntax Explore generics, enumerations, annotations, and lambda expressions Understand basic techniques used in object-oriented design Examine concurrency and memory, and how they’re intertwined Work with Java collections and handle common data formats Delve into Java’s latest I/O APIs, including asynchronous channels Use Nashorn to execute JavaScript on the Java Virtual Machine Become familiar with development tools in OpenJDK
The sixth edition of Java in a Nutshell helps experienced Java programmers get the most out of Java 7 and 8, but it's also a learning path for new developers. With examples rewritten to take full advantage of modern Java APIs and development best practices, this fully updated book brings you up to date and gets you ready to develop Java applications for the future. Learn how lambda expressions make your programs shorter, and easier to write and understand ; Explore Nashorn, the brand new implementation of Javascript on the Java Virtual Machine Start using the new I/O APIs to make your code cleaner, shorter, and safer ; Understand Java's concurrency model and learn how to write multithreaded code with confidence.
This book is intended for WordPress developers and designers who want to develop quality web applications within a limited time frame and for maximum profit. Prior knowledge of basic web development and design is assumed.
Master the most common algorithms and data structures, and learn how to implement them efficiently using the most up-to-date features of Swift 3 About This Book Develop a deep understanding of the collections in the Swift Standard Library with this step-by-step guide Develop native Swift data structures and algorithms for use in mobile, desktop, and server-based applications Learn about performance efficiency between different data structures and algorithms Who This Book Is For This book is for developers who want to learn how to implement and use common data structures and algorithms natively in Swift. Whether you are a self-taught developer without a formal technical background or you have a degree in Computer Science, this book will provide with the knowledge you need to develop advanced data structures and algorithms in Swift using the latest language features. What You Will Learn Get to know about the basic data structures and how to use the Swift REPL Use the Swift Standard Library collections bridging to Objective-C collections, and find out about protocol-oriented programming Find out about Swift generators and sequences, and see how to use them to implement advanced data structures such as Stack, StackList, Queue, and LinkedList Implement sorting algorithms such as Insertion Sort, Merge Sort, and Quick Sort and understand the performance trade-offs between them See how to implement various binary trees, B-Tree, and Splay Trees Perform advanced searching methods using Red-Black trees, AVL trees, and Trie trees, and take a look at several substring search algorithms Get to know about the data structures used in graphs and how to implement graphs such as depth-first search, breadth-first search, directed graphs, spanning tree, and shortest path Explore algorithm efficiency and see how to measure it In Detail Apple's Swift language has expressive features that are familiar to those working with modern functional languages, but also provides backward support for Objective-C and Apple's legacy frameworks. These features are attracting many new developers to start creating applications for OS X and iOS using Swift. Designing an application to scale while processing large amounts of data or provide fast and efficient searching can be complex, especially running on mobile devices with limited memory and bandwidth. Learning about best practices and knowing how to select the best data structure and algorithm in Swift is crucial to the success of your application and will help ensure your application is a success. That's what this book will teach you. Starting at the beginning, this book will cover the basic data structures and Swift types, and introduce asymptotic analysis. You'll learn about the standard library collections and bridging between Swift and Objective-C collections. You will see how to implement advanced data structures, sort algorithms, work with trees, advanced searching methods, use graphs, and performance and algorithm efficiency. You'll also see how to choose the perfect algorithm for your problem. Style and approach This easy-to-follow yet comprehensive guide can either be read from beginning to end, or depending on your current knowledge level, you can jump to the specific chapter that interests you. Each chapter topic starts with an introduction to the topic and algorithm before moving on to the hands-on implementation and analysis.
Learn to build fast and robust applications on the Linux platform with Swift About This Book Create robust applications by building a strong foundation in the Swift Language Utilize Swift 3 on the embedded Linux platform for IoT and Robotic projects Build more flexible and high-performing applications on desktop, server, and embedded Linux platforms Who This Book Is For This book is for Linux developers who are interested in quickly learning how to use Swift to create exciting applications on Linux platforms. What You Will Learn Install Swift on the Linux platform Explore the power of the Swift language Get to know the proper design techniques Understand Swift's new Core Library Implement popular design patterns with Swift Integrate C libraries with Swift Using Swift on Single-Board Computers Learn how to add concurrency to your application with Grand Central Dispatch Learn how to work with Swift Generics Learn how to use the Protocol-Oriented design paradigm In Detail Swift is a modern, fast, and safe programming language created by Apple. Writing Swift is interactive and fun, the syntax is concise yet expressive, and the code runs lightning-fast. Swift's move to open source has been embraced with open arms and has seen increased adoption in the Linux platform. Our book will introduce you to the Swift language, further delving into all the key concepts you need to create applications for desktop, server, and embedded Linux platforms. We will teach you the best practices to design an application with Swift 3 via design patterns and Protocol-Oriented Programming. Further on, you will learn how to catch and respond to errors within your application. When you have gained a strong knowledge of using Swift in Linux, we'll show you how to build IoT and robotic projects using Swift on single board computers. By the end of the book, you will have a solid understanding of the Swift Language with Linux and will be able to create your own applications with ease. Style and approach This easy-to-follow, code-rich guide is filled with examples that demonstrate how to put the concepts into practice. You'll also get design patterns and best practices to get you writing better applications on the Linux platform.
Unleash your child's developer potential through fun projects and help them learn how to create iOS apps in Swift About This Book Children can express their creativity while learning through interactive Swift Playgrounds Empower children to think critically about problems Learning programming basics can help children gain confidence in problem solving Help children put their imagination into action building their first iOS app Who This Book Is For Children who are curious about the technology we use in our daily lives and want to know how it works can use this book to learn about programming and building their first iOS app. No prior programming experience is necessary. What You Will Learn Basic programming and coding fundamentals Write code using the fun and interactive Swift Playgrounds app Make animations, including creating your own starry night Utilise functions by making pizza in code Create an interactive toy bin Learn how to use control flow statements to further enhance your toy bin Build a simple movie night app working with tableviews and arrays In Detail This book starts at the beginning by introducing programming through easy to use examples with the Swift Playgrounds app. Kids are regularly encouraged to explore and play with new concepts to support knowledge acquisition and retention – these newly learned skills can then be used to express their own unique ideas. Children will be shown how to create their first iOS application and build their very own movie night application. Style and approach This is a project-based guide with an engaging tone that uses a visually rich format. It explains the concepts in clear language and uses lots of pictures, cartoons, and examples. There is a set of practical exercises to be completed.
"Once again, the definitive book on Ruby from David Black. A must-have!" William Wheeler, TekSystems The Well-Grounded Rubyist, Second Edition addresses both newcomers to Ruby as well as Ruby programmers who want to deepen their understanding of the language. This beautifully written tutorial begins with your first Ruby program and goes on to explore sophisticated topics like callable objects, reflection, and threading. It concentrates on the language, preparing you to use Ruby in any way you choose. This edition includes coverage of Ruby features such as keyword arguments, lazy enumerators, and Module#prepend. This is a good time for Ruby! It's powerful like Java or C++, and has dynamic features that let your code react gracefully to changes at runtime. And it's elegant, so creating applications, development tools, and administrative scripts is easier and more straightforward. With an active development community and countless libraries and productivity tools, Ruby has come into its own. Inside: Clear explanations of Ruby concepts Numerous simple examples Updated for Ruby 2.1 Prepares you to use Ruby anywhere for any purpose David A. Black is an internationally known Ruby developer, author, trainer, speaker, event organizer, and founder of Ruby Central, as well as a Lead Consultant at Cyrus Innovation. All wheat, no chaff-takes you from Ruby programmer to full-fledged Rubyist. Doug Sparling, Andrews McMeel Universal Provides powerful insights and digs into Ruby's quirks. Revelatory. Ted Roche, Ted Roche & Associates, LLC The best way to learn Ruby fundamentals. Derek Sivers, sivers.org NARRATED BY MARK THOMAS.
Computer Confluence is more than a textbook. It is the confluence of three information sources: an illustrated textbook, a multimedia CD-ROM, and a dynamic World Wide Web site.