Preface
The mind is not a vessel that needs filling, but wood that needs igniting.
Plutarch
What should every Java programmer know? It depends. It depends on who you ask, why you ask, and when you ask. There are at least as many suggestions as there are points of view. In a language, platform, ecosystem, and community that affects the software and lives of so many people, and has done so from one century to the next, from one core to many, from megabytes to gigabytes, it depends on more than you could ever hope to cover in a single book by a single author.
Instead, in this book, we draw on some of those many perspectives to collect together for you a cross section and representation of the thinking in the Java-verse. Its not every thing, but it is 97 of them from 73 contributors. To quote the preface of 97 Things Every Programmer Should Know (OReilly):
With so much to know, so much to do, and so many ways of doing so, no single person or single source can lay claim to the one true way. The contributions do not dovetail like modular parts, and there is no intent that they shouldif anything, the opposite is true. The value of each contribution comes from its distinctiveness. The value of the collection lies in how the contributions complement, confirm, and even contradict one another. There is no overarching narrative: it is for you to respond to, reflect on, and connect together what you read, weighing it against your own context, knowledge, and experience.
What should every Java programmer know? In the 97 things we have sampled, the answers span the language, the JVM, testing techniques, the JDK, community, history, agile thinking, implementation know-how, professionalism, style, substance, programming paradigms, programmers as people, software architecture, skills beyond code, tooling, GC mechanics, non-Java JVM languagesand more.
Permissions
In the spirit of the first 97 Things books, each contribution in this volume follows a nonrestrictive, open source model. Each contribution is licensed under a Creative Commons Attribution 4.0 license. Many of the contributions also first appeared in the 97 Things Medium publication.
All these things are fuel and fire for your thoughts and your code.
OReilly Online Learning
Note
For more than 40 years, OReilly Media has provided technology and business training, knowledge, and insight to help companies succeed.
Our unique network of experts and innovators share their knowledge and expertise through books, articles, and our online learning platform. OReillys online learning platform gives you on-demand access to live training courses, in-depth learning paths, interactive coding environments, and a vast collection of text and video from OReilly and 200+ other publishers. For more information, visit http://oreilly.com.
How to Contact Us
Please address comments and questions concerning this book to the publisher:
- OReilly Media, Inc.
- 1005 Gravenstein Highway North
- Sebastopol, CA 95472
- 800-998-9938 (in the United States or Canada)
- 707-829-0515 (international or local)
- 707-829-0104 (fax)
We have a web page for this book, where we list errata, examples, and any additional information. You can access this page at https://oreil.ly/97Tejpsk.
Email to comment or ask technical questions about this book.
Visit http://oreilly.com for news and information about our books and courses.
Find us on Facebook: http://facebook.com/oreilly.
Follow us on Twitter at http://twitter.com/oreillymedia, and also check out http://twitter.com/97_Things.
Watch us on YouTube: http://youtube.com/oreillymedia.
Acknowledgments
Many people have contributed their time and their insight, both directly and indirectly, to the 97 Things Every Java Programmer Should Know project. They all deserve credit.
We would like to thank all those who took the time and effort to contribute to this book. We are also grateful for the additional feedback, comments, and suggestions provided by Brian Goetz.
Thanks to OReilly for the support they have provided for this project, including Zan McQuade and Corbin Collins for their guidance and for nurturing contributors and content, and Rachel Roumeliotis, Susan Conant, and Mike Loukides for their contributions on this journey.
Kevlin would also like to thank his wife, Carolyn, for making sense of his nonsense, and his sons, Stefan and Yannick, for making sense of their parents.
Trisha would like to add thanks to her husband, Isra, for helping her to see that stressing about not doing enough was not helping her to do anything, and her daughters, Evie and Amy, for providing unconditional love and cuddles.
We hope this book will be informative, insightful, and inspirational.
Enjoy!
Chapter 1. All You Need Is Java
Anders Nors