A Desktop Quick Reference
Benjamin J. Evans, Jason Clark, and David Flanagan

#Java
#OpenJDK
#Java_17
#APIs
☕ تسلط بر Java مدرن؛ از شروع برنامهنویسی تا Java 25
🚀 کتاب Java in a Nutshell فقط به برنامهنویسان باتجربه کمک نمیکنه بیشترین استفاده را از نسخههای Java تا Java 25 ببرن؛ بلکه مسیر یادگیری مشخصی هم برای توسعهدهندگان تازهکار ارائه میده. این راهنمای کاملاً بازبینیشده با مثالهای فراوان، نحوه استفاده کامل از APIهای مدرن Java، Best Practiceهای توسعه و قابلیتهای جدید این زبان را آموزش میده.
✨ ویژگیهای کلیدی
🆕 جزئیات زبان Java تا Java 25، از جمله جدیدترین نسخه LTS، بهطور کامل پوشش داده میشن.
🌱 قابلیتهای تازه و مناسب مبتدیان مثل Compact Source Files و Instance Main Methods آموزش داده میشن.
🧱 Object-Oriented Programming و تکنیکهای Object-Oriented Design با Syntax مدرن Java توضیح داده میشن.
🧪 یک Java Sandbox تعاملی برای تمرین عملی و تثبیت مفاهیم اصلی در اختیار خواننده قرار میگیره.
⚙️ مباحثی مثل Generics، Lambda Expressionها، Sealed Typeها، Recordها، Memory، Concurrency، Virtual Threadها، Collectionها و ابزارهای OpenJDK پوشش داده میشن.
📘 توضیح کتاب
📚 بخش اول کتاب، مقدمهای سریع و بدون مطالب اضافی درباره زبان برنامهنویسی Java و جنبههای اصلی Runtime در پلتفرم Java ارائه میده. بخش دوم هم مفاهیم و APIهای اصلی را بررسی میکنه و نشان میده چطور کارهای واقعی برنامهنویسی را در محیط Java انجام بدی.
🆕 ویرایش نهم شامل یک فصل کاملاً جدید درباره قابلیت تحولآفرین Compact Source Files and Instance Main Methods در Java 25 است. این قابلیت ورود تازهکارها به زبان Java را سادهتر از همیشه میکنه و موانع اولیه برای نوشتن و اجرای برنامهها را کاهش میده.
🧠 مسیر آموزشی از Java Syntax، Objectها، Type System و اصول Object-Oriented Programming آغاز میشه. در ادامه با Object-Oriented Design، مدیریت Memory و Concurrency آشنا میشی و نحوه استفاده از قابلیتهایی مثل Virtual Threadها را بررسی میکنی.
🗃️ بخش کاربردی کتاب کار با Java Collectionها، Data Formatهای رایج، File Handling و I/O را پوشش میده. همچنین Classloading، Reflection، Method Handleها، Java Platform Moduleها و ابزارهای پلتفرم را بررسی میکنه.
🛠️ مثالهای فراوان کتاب نشان میدن چطور از APIهای مدرن Java و Best Practiceهای توسعه بهطور کامل استفاده کنی. Java Sandbox تعاملی نیز فرصت تمرین مستقیم را فراهم میکنه تا مفاهیم مهم فقط در حد توضیحات نظری باقی نمونن.
📖 این کتاب بهعنوان یک مرجع رومیزی Java طراحی شده تا هنگام برنامهنویسی همیشه کنار Keyboard در دسترس باشه. بخش اول، Introducing Java، مقدمهای سریع و بدون حاشیه بر زبان Java و جنبههای اصلی Runtime ارائه میده و بخش دوم، Working with the Java Platform، مفاهیم اصلی را با مثالهایی از APIهای مهم ترکیب میکنه.
🔢 کتاب Java 25 را پوشش میده، اما نویسندگان در نظر دارن که شاید بعضی شرکتها هنوز این نسخه را انتخاب نکرده باشن. به همین دلیل، تا جای ممکن مشخص میشه هر قابلیت در کدام نسخه معرفی شده است. در سراسر کتاب از Syntax مربوط به Java 25، از جمله var و Lambda Expressionها، استفاده میشه.
🔄 ویرایش هشتم کتاب Java 17 را پوشش میداد، درحالیکه ویرایش نهم به Java 25 اختصاص داره. فرایند جدید انتشار Java که از Java 9 ادامه پیدا کرده، بعضی نسخهها را با عنوان Long-Term Support یا LTS مشخص میکنه. هنگام نگارش کتاب، Java 25 نسخه فعلی LTS بوده و Java 21 و Java 17 نسخههای پیشین آن محسوب میشن.
🧩 نویسندگان در ویرایش نهم تلاش کردهاند مفهوم یک راهنمای Nutshell را بهروز کنن. توسعهدهنده مدرن Java باید بیشتر از Syntax و APIها بدونه؛ چون با بلوغ محیط Java، موضوعاتی مثل Concurrency، Object-Oriented Design، Memory و Java Type System برای تمام توسعهدهندگان اهمیت بیشتری پیدا کردهاند.
📌 این ویرایش با این رویکرد نوشته شده که نسخههای جدیدتر Java برای بیشتر توسعهدهندگان اهمیت بیشتری دارن. بنابراین معمولاً فقط زمانی به نسخه ورود یک قابلیت اشاره میشه که آن Feature بهتازگی وارد زبان شده باشه.
🧱 برای نمونه، Module System که با Java 9 معرفی شد، احتمالاً هنوز برای بعضی توسعهدهندگان تازگی داره و تغییر بزرگی محسوب میشه. بااینحال، موضوعی نسبتاً پیشرفته و از بعضی جهات جدا از سایر بخشهای زبانه؛ به همین دلیل، طبق متن Preface بررسی آن به یک فصل، یعنی فصل ۱۴، محدود شده است.
🎯 بعد از مطالعه کتاب، میتونی از Syntax، APIها و ابزارهای مدرن Java تا نسخه Java 25 استفاده کنی، سیستم Type و مدل Object-Oriented زبان را عمیقتر درک کنی، با Memory و Concurrency کار کنی و برای انجام کارهای واقعی برنامهنویسی در پلتفرم Java به یک مرجع کاربردی و قابلاعتماد دسترسی داشته باشی.
🎯 چیزهایی که یاد میگیری
☕ با جزئیات زبان Java تا Java 25 و تازهترین نسخه LTS آشنا میشی.
🌱 یاد میگیری از قابلیتهای مناسب مبتدیان مثل Compact Source Files و Instance Main Methods استفاده کنی.
🧱 میتونی Object-Oriented Programming را با Syntax مدرن Java یاد بگیری و تکنیکهای Object-Oriented Design را به کار بگیری.
🧩 با Generics، Lambda Expressionها، Sealed Typeها و Recordها آشنا میشی.
🧠 نحوه مدیریت Memory و Concurrency، از جمله استفاده از Virtual Threadهای Java 25 را درک میکنی.
🗃️ یاد میگیری با Java Collectionها، Data Formatهای رایج، Fileها و عملیات I/O کار کنی.
🔍 با Classloading، Reflection، Method Handleها و Java Platform Moduleها آشنا میشی.
🛠️ میتونی از ابزارهای توسعه در OpenJDK استفاده کنی و مفاهیم اصلی را در Java Sandbox تعاملی تمرین کنی.
👤 این کتاب برای چه کسانیه؟
💻 کتاب برای برنامهنویسان باتجربه Java نوشته شده که میخوان از نسخههای جدید این زبان تا Java 25 بیشترین استفاده را ببرن. در عین حال، برای توسعهدهندگان تازهکار هم یک مسیر آموزشی مرحلهبهمرحله ارائه میده.
🌱 فصل تازه Compact Source Files و Instance Main Methods و Java Sandbox تعاملی، شروع یادگیری را برای مبتدیان سادهتر میکنن. بخش اول نیز Syntax، Object-Oriented Programming، Type System و Runtime را با سرعت مناسب و بدون حاشیه آموزش میده.
🧑💻 توسعهدهندگانی که به یک مرجع رومیزی برای Syntax، APIها، Collectionها، I/O، Concurrency، Moduleها و ابزارهای Java نیاز دارن هم میتونن هنگام کارهای روزمره از کتاب استفاده کنن. در اطلاعات منبع، پیشنیاز فنی مشخصی برای مطالعه ذکر نشده و کتاب برای تازهکارها و برنامهنویسان باتجربه طراحی شده است.
📖 فهرست مطالب
بخش اول. معرفی Java
فصل ۱. مقدمهای بر محیط Java
فصل ۲. Java Syntax از پایه
فصل ۳. Object-Oriented Programming در Java
فصل ۴. Type System در Java
فصل ۵. مقدمهای بر Object-Oriented Design در Java
فصل ۶. رویکرد Java به Memory و Concurrency
بخش دوم. کار با پلتفرم Java
فصل ۷. قواعد Programming و Documentation
فصل ۸. کار با Java Collectionها
فصل ۹. مدیریت Data Formatهای رایج
فصل ۱۰. File Handling و I/O
فصل ۱۱. Classloading، Reflection و Method Handleها
فصل ۱۲. Java Platform Moduleها
فصل ۱۳. ابزارهای پلتفرم
پیوست A. فراتر از Java 17
👤 درباره نویسندگان
☕ بن ایوانز یک Java Champion و Senior Principal Software Engineer در IBM است و بهعنوان Technical Lead بخش Observability برای Red Hat Cloud Native Runtimes فعالیت میکنه.
🏢 او پیشتر Lead Architect بخش Instrumentation در New Relic بود و در تأسیس jClarity، یک Startup فعال در زمینه ابزارهای Performance که توسط Microsoft خریداری شد، مشارکت داشت.
⚙️ بن ایوانز همچنین بهعنوان Chief Architect بخش Listed Derivatives در Deutsche Bank و Senior Technical Instructor در Morgan Stanley فعالیت کرده است.
📜 او بهمدت شش سال عضو Java Community Process Executive Committee بود و به تعریف استانداردهای جدید Java کمک کرد.
📚 بن نویسنده هفت کتاب، از جمله Optimizing Cloud Native Java و The Well-Grounded Java Developer است. او بهطور منظم برای Oracle’s Java Magazine و دیگر نشریات تخصصی این صنعت مقاله مینویسه.
💻 جیسون کلارک یک Staff Engineer در GitHub است و در پروژههای مختلفی، از Remote Development Environmentها تا ساخت و Deployment اپلیکیشنهای کاربران، فعالیت کرده است.
🔍 او پیشتر Architect شرکت New Relic بود و روی فراهمکردن Observability در سراسر Stack کار میکرد. جیسون در WebMD نیز به ساخت Web Serviceهای مبتنی بر .NET برای صنعت Healthcare میپرداخت.
🎤 جیسون کلارک از سخنرانان ثابت Conferenceهاست و در نگارش دو کتاب مشارکت داشته است: The Well-Grounded Java Developer, Second Edition همراه با بن ایوانز و مارتین فربورگ و Java in a Nutshell, Eighth Edition همراه با بن ایوانز.
🧑💻 دیوید فلاناگان برنامهنویسیه که بیشتر زمان خودش را صرف نوشتن درباره JavaScript و Java میکنه.
📖 کتابهای او در انتشارات O’Reilly شامل Java in a Nutshell، Java Examples in a Nutshell، Java Foundation Classes in a Nutshell، JavaScript: The Definitive Guide و JavaScript Pocket Reference هستن.
🎓 دیوید مدرک Computer Science and Engineering خود را از Massachusetts Institute of Technology یا MIT دریافت کرده است.
🏡 او همراه همسر و فرزندانش در منطقه Pacific Northwest آمریکا، میان شهرهای Seattle در Washington و Vancouver در British Columbia زندگی میکنه. وبلاگ دیوید در www.davidflanagan.com در دسترس است.
Java in a Nutshell doesn't just help experienced Java programmers get the most out of versions through Java 25. It also provides 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 guide includes new material on recent enhancements to Java.
The first section provides a fast-paced, no-fluff introduction to the Java programming language and the chief runtime aspects of the Java platform. The second section explores core concepts and APIs and explains how to perform real programming work in the Java environment.
This updated 9th edition includes an entirely new chapter dedicated to Java 25's groundbreaking Compact Source Files and Instance Main Methods feature, which makes the language more accessible than ever for beginners. It also features an interactive Java sandbox for hands-on practice.
Table of Contents
Part I. Introducing Java
Chapter 1. Introduction to the Java Environment
Chapter 2. Java Syntax from the Ground Up
Chapter 3. Object-Oriented Programming in Java
Chapter 4. The Java Type System
Chapter 5. Introduction to Object-Oriented Design in Java
Chapter 6. Java’s Approach to Memory and Concurrency
Part II. Working with the Java Platform
Chapter 7. Programming and Documentation Conventions
Chapter 8. Working with Java Collections
Chapter 9. Handling Common Data Formats
Chapter 10. File Handling and I/O
Chapter 11. Classloading, Reflection, and Method Handles
Chapter 12. Java Platform Modules
Chapter 13. Platform Tools
Appendix A. Beyond Java 17
This book is a desktop Java reference, designed to sit faithfully by your keyboard while you program. Part I, “Introducing Java”, is a fast-paced, “no-fluff” introduction to the Java programming language and the core runtime aspects of the Java platform. Part II, “Working with the Java Platform”, is a reference section that blends elucidation of core concepts with examples of important core APIs. The book covers Java 25, but we recognize that some shops may not have adopted it yet—so where possible we call out when specific features were introduced. We use Java 25 syntax throughout, including var and lambda expressions.
Changes in the Ninth Edition
The eighth edition of this book covered Java 17, whereas this edition covers Java 25. The updated release process of Java has continued since Java 9, with certain releases now badged as long-term support releases. So, Java 25 is the current LTS release at the time of this writing, with Java 21 and 17 preceding it.
With the ninth edition we have tried to update the concept of what it means to be a “Nutshell” guide. The modern Java developer needs to know more than just syntax and APIs. As the Java environment has matured, such topics as concurrency, object-oriented design, memory, and the Java type system have all grown in importance for all developers.
In this edition, we have taken the approach that only the most recent versions of Java are likely to be of interest to the majority of Java developers, so we usually only call out when new features arrived if they entered the language recently.
For example, the module system (that arrived with Java 9) is still likely to be new for at least some developers, and it represents a major change. However, it is also something of an advanced topic and is in some ways separate from the rest of the language, so we have restricted our treatment of it to a single chapter (Chapter 14).
Ben Evans is a Java Champion and Senior Principal Software Engineer at IBM, where he is the Technical Lead for Observability for Red Hat Cloud Native Runtimes. Previously he was Lead Architect for Instrumentation at New Relic, and co-founded jClarity, a performance tools startup acquired by Microsoft.
He has also worked as Chief Architect for Listed Derivatives at Deutsche Bank and as Senior Technical Instructor for Morgan Stanley. He served for 6 years on the Java Community Process Executive Committee, helping define new Java standards.
Ben is the author of seven books, including "Optimizing Cloud Native Java", and the âThe Well-Grounded Java Developerâ and writes regularly for Oracle's Java Magazine and other industry publications.
Jason Clark is a Staff Engineer at GitHub where he’s worked on everything from remote development environments to creating and deploying user apps. He was previously an Architect at New Relic enabling observability across the stack, and WebMD building .Net-based web services for the healthcare industry.
A regular conference speaker, Jason is co-author of two books, “The Well-Grounded Java Developer, Second Edition” with Ben Evans and Martijn Verburg, and “Java in a Nutshell, Eighth Edition” with Ben Evans.
David Flanagan is a computer programmer who spends most of his time writing about JavaScript and Java. His books with O'Reilly include Java in a Nutshell, Java Examples in a Nutshell, Java Foundation Classes in a Nutshell, JavaScript: The Definitive Guide, and JavaScript Pocket Reference. David has a degree in computer science and engineering from the Massachusetts Institute of Technology. He lives with his wife and children in the U.S. Pacific Northwest bewteen the cities of Seattle, Washington and Vancouver, British Columbia. David has a blog at www.davidflanagan.com.









