did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.


Core Java Fundamentals, Volume 1

  • ISBN13:


  • ISBN10:


  • Edition: 12th
  • Format: Paperback
  • Copyright: 2021-12-21
  • Publisher: Oracle Press
This product is included in:
Learn More

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
  • Buyback Icon We Buy This Book Back!
    In-Store Credit: $6.56
    Check/Direct Deposit: $6.25
    PayPal: $6.25
  • Complimentary 7-Day eTextbook Access - Read more
    When you rent or buy this book, you will receive complimentary 7-day online access to the eTextbook version from your PC, Mac, tablet, or smartphone. Feature not included on Marketplace Items.
List Price: $59.99 Save up to $32.99
  • Rent Book $27.00
    Add to Cart Free Shipping Icon Free Shipping


    7-Day eTextbook Access 7-Day eTextbook Access

    *This item is part of an exclusive publisher rental program and requires an additional convenience fee. This fee will be reflected in the shopping cart.

Supplemental Materials

What is included with this book?


The #1 Java Guide for Serious Programmers: Fully Updated through Java 17

"This is the definitive reference and instructional work for Java and the Java ecosystem."

---Andrew BinstockJava Magazine

Core Java, Volume I: Fundamentals, Twelfth Edition, is the definitive guide to writing robust, maintainable code. Whatever version of Java you are using---up to and including Java 17---this book will help you achieve a deep and practical understanding of the language and APIs. With hundreds of realistic examples, Cay S. Horstmann reveals the most powerful and effective ways to get the job done.

This book is written for readers with prior programming experience who are looking for in-depth coverage of the Java language and platform. You'll learn about all language features in detail, including the recent improvements in Java 17. The applied chapters and code examples cover the most up-to-date capabilities of the vast Java library. For 25 years, Core Java has prepared serious programmers for serious Java programming.

This first of two volumes offers in-depth coverage of fundamental Java programming, including object-oriented programming, generics, collections, lambda expressions, concurrency, and functional programming. Classic material for Swing UI programming is included for those who need it. This edition's new content covers text blocks, switch enhancements, records, pattern matching for instanceof, sealed classes, and more.
  • Master foundational techniques, idioms, and best practices for writing superior Java code
  • Leverage the power of interfaces, lambda expressions, and inner classes
  • Harden programs through effective exception handling and debugging
  • Write safer, more reusable code with generic programming
  • Improve performance and efficiency with Java's standard collections
  • Explore simple programs with JShell and assemble complex programs with archives and modules
  • Build cross-platform GUIs with the Swing toolkit
  • Fully utilize multicore processors with Java's powerful concurrency model
See Core Java, Volume II: Advanced Features, Twelfth Edition (ISBN:  978-0-13-787107-0), for expert coverage of Java 17 enterprise features, the module system, annotations, networking, security, and advanced UI programming.

Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.

Author Biography

Cay S. Horstmann is author of Modern JavaScript for the Impatient (2020), Core Java® SE 9 for the Impatient, Second Edition (2017), Scala for the Impatient, Second Edition (2016), and Java SE 8 for the Really Impatient (2014), all from Addison-Wesley. He has written more than a dozen other books for professional programmers and computer science students. He is an emeritus professor of computer science at San Jose State University and a Java Champion.

Table of Contents

Preface xxi
Acknowledgments xxvii

Chapter 1: An Introduction to Java 1
1.1 Java as a Programming Platform 1
1.2 The Java "White Paper" Buzzwords 2
1.3 Java Applets and the Internet 9
1.4 A Short History of Java 10
1.5 Common Misconceptions about Java 13

Chapter 2: The Java Programming Environment 17
2.1 Installing the Java Development Kit 17
2.2 Using the Command-Line Tools 22
2.3 Using an Integrated Development Environment 27
2.4 JShell 30

Chapter 3: Fundamental Programming Structures in Java 35
3.1 A Simple Java Program 36
3.2 Comments 39
3.3 Data Types 40
3.4 Variables and Constants 46
3.5 Operators 51
3.6 Strings 61
3.7 Input and Output 76
3.8 Control Flow 85
3.9 Big Numbers 106
3.10 Arrays 109

Chapter 4: Objects and Classes 125
4.1 Introduction to Object-Oriented Programming 126
4.2 Using Predefined Classes 132
4.3 Defining Your Own Classes 141
4.4 Static Fields and Methods 156
4.5 Method Parameters 163
4.6 Object Construction 170
4.7 Records 181
4.8 Packages 186
4.9 JAR Files 198
4.10 Documentation Comments 204
4.11 Class Design Hints 210

Chapter 5: Inheritance 213
5.1 Classes, Superclasses, and Subclasses 214
5.2 Object: The Cosmic Superclass 235
5.3 Generic Array Lists 251
5.4 Object Wrappers and Autoboxing 259
5.5 Methods with a Variable Number of Parameters 263
5.6 Abstract Classes 265
5.7 Enumeration Classes 271
5.8 Sealed Classes 273
5.9 Reflection 279
5.10 Design Hints for Inheritance 308

Chapter 6: Interfaces, Lambda Expressions, and Inner Classes 311
6.1 Interfaces 312
6.2 Lambda Expressions 338
6.3 Inner Classes 357
6.4 Service Loaders 376
6.5 Proxies 378

Chapter 7: Exceptions, Assertions, and Logging 387
7.1 Dealing with Errors 388
7.2 Catching Exceptions 397
7.3 Tips for Using Exceptions 411
7.4 Using Assertions 415
7.5 Logging 420
7.6 Debugging Tips 441

Chapter 8: Generic Programming 447
8.1 Why Generic Programming? 448
8.2 Defining a Simple Generic Class 450
8.3 Generic Methods 453
8.4 Bounds for Type Variables 454
8.5 Generic Code and the Virtual Machine 457
8.6 Restrictions and Limitations 462
8.7 Inheritance Rules for Generic Types 472
8.8 Wildcard Types 475
8.9 Reflection and Generics 483

Chapter 9: Collections 497
9.1 The Java Collections Framework 498
9.2 Interfaces in the Collections Framework 508
9.3 Concrete Collections 510
9.4 Maps 535
9.5 Copies and Views 548
9.6 Algorithms 558
9.7 Legacy Collections 569

Chapter 10: Graphical User Interface Programming 581
10.1 A History of Java User Interface Toolkits 582
10.2 Displaying Frames 583
10.3 Displaying Information in a Component 590
10.4 Event Handling 614
10.5 The Preferences API 639

Chapter 11: User Interface Components with Swing 647
11.1 Swing and the Model-View-Controller Design Pattern 648
11.2 Introduction to Layout Management 652
11.3 Text Input 658
11.4 Choice Components 667
11.5 Menus 686
11.6 Sophisticated Layout Management 705
11.7 Dialog Boxes 721

Chapter 12: Concurrency 747
12.1 What Are Threads? 748
12.2 Thread States 753
12.3 Thread Properties 757
12.4 Synchronization 764
12.5 Thread-Safe Collections 797
12.6 Tasks and Thread Pools 815
12.7 Asynchronous Computations 830
12.8 Processes 847

Appendix 855

Index 861

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program