Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Foreword Preface
Changes in the Seventh Edition Contents of This Book Related Books Examples Online Conventions Used in This Book Request for Comments O’Reilly Safari Acknowledgments
I. Introducing Java 1. Introduction to the Java Environment
The Language, the JVM, and the Ecosystem
What Is the Java Language? What Is the JVM? What Is the Java Ecosystem?
A Brief History of Java and the JVM The Lifecycle of a Java Program
Frequently Asked Questions
Java Security Comparing Java to Other Languages
Java Compared to C Java Compared to C++ Java Compared to Python Java Compared to JavaScript
Answering Some Criticisms of Java
Overly Verbose Slow to Change Performance Problems Insecure Too Corporate
2. Java Syntax from the Ground Up
Java Programs from the Top Down Lexical Structure
The Unicode Character Set Case Sensitivity and Whitespace Comments Reserved Words Identifiers Literals Punctuation
Primitive Data Types
The boolean Type The char Type Integer Types Floating-Point Types Primitive Type Conversions
Expressions and Operators
Operator Summary Arithmetic Operators String Concatenation Operator Increment and Decrement Operators Comparison Operators Boolean Operators Bitwise and Shift Operators Assignment Operators The Conditional Operator The instanceof Operator Special Operators
Statements
Expression Statements Compound Statements The Empty Statement Labeled Statements Local Variable Declaration Statements The if/else Statement The switch Statement The while Statement The do Statement The for Statement The foreach Statement The break Statement The continue Statement The return Statement The synchronized Statement The throw Statement The try/catch/finally Statement The try-with-resources Statement The assert Statement
Methods
Defining Methods Method Modifiers Checked and Unchecked Exceptions Variable-Length Argument Lists
Introduction to Classes and Objects
Defining a Class Creating an Object Using an Object Object Literals Lambda Expressions
Arrays
Array Types Creating and Initializing Arrays Using Arrays Multidimensional Arrays
Reference Types
Reference Versus Primitive Types Manipulating Objects and Reference Copies Comparing Objects Boxing and Unboxing Conversions
Packages and the Java Namespace
Package Declaration Globally Unique Package Names Importing Types Importing Static Members
Java Source File Structure Defining and Running Java Programs Summary
3. Object-Oriented Programming in Java
Overview of Classes
Basic OO Definitions Other Reference Types Class Definition Syntax
Fields and Methods
Field Declaration Syntax Class Fields Class Methods Instance Fields Instance Methods How the this Reference Works
Creating and Initializing Objects
Defining a Constructor Defining Multiple Constructors Invoking One Constructor from Another Field Defaults and Initializers
Subclasses and Inheritance
Extending a Class Superclasses, Object, and the Class Hierarchy Subclass Constructors Constructor Chaining and the Default Constructor Hiding Superclass Fields Overriding Superclass Methods
Data Hiding and Encapsulation
Access Control Data Accessor Methods
Abstract Classes and Methods
Reference Type Conversions
Modifier Summary
4. The Java Type System
Interfaces
Defining an Interface Extending Interfaces Implementing an Interface Default Methods Marker Interfaces
Java Generics
Introduction to Generics Generic Types and Type Parameters Diamond Syntax Type Erasure Bounded Type Parameters Introducing Covariance Wildcards Generic Methods Compile and Runtime Typing Using and Designing Generic Types
Enums and Annotations
Enums Annotations Defining Custom Annotations Type Annotations
Lambda Expressions
Lambda Expression Conversion Method References Functional Programming Lexical Scoping and Local Variables
Nested Types
Static Member Types Nonstatic Member Classes Local Classes Anonymous Classes
Non-Denotable Types and var Summary
5. Introduction to Object-Oriented Design in Java
Java Values Important Methods of java.lang.Object
toString() equals() hashCode() Comparable::compareTo() clone()
Aspects of Object-Oriented Design
Constants Interfaces Versus Abstract Classes Can Default Methods Be Used as Traits? Instance Methods or Class Methods? Composition Versus Inheritance Field Inheritance and Accessors Singleton
Object-Oriented Design with Lambdas
Lambdas Versus Nested Classes Lambdas Versus Method References
Exceptions and Exception Handling Safe Java Programming
6. Java’s Approach to Memory and Concurrency
Basic Concepts of Java Memory Management
Memory Leaks in Java Introducing Mark-and-Sweep The Basic Mark-and-Sweep Algorithm
How the JVM Optimizes Garbage Collection
Evacuation
The HotSpot Heap
Other Collectors ParallelOld
Finalization
Finalization Details
Java’s Support for Concurrency
Thread Lifecycle Visibility and Mutability Exclusion and Protecting State volatile Useful Methods of Thread Deprecated Methods of Thread
Working with Threads Summary
II. Working with the Java Platform 7. Programming and Documentation Conventions
Naming and Capitalization Conventions Practical Naming Java Documentation Comments
Structure of a Doc Comment Doc-Comment Tags Inline Doc-Comment Tags Cross-References in Doc Comments Doc Comments for Packages
Doclets Conventions for Portable Programs
8. Working with Java Collections
Introduction to Collections API
The Collection Interface The Set Interface The List Interface The Map Interface The Queue and BlockingQueue Interfaces Adding Elements to Queues Removing Elements from Queues Utility Methods Arrays and Helper Methods
Java Streams and Lambda Expressions
Functional Approaches The Streams API
Summary
9. Handling Common Data Formats
Text
Special Syntax for Strings String Immutability Regular Expressions
Numbers and Math
How Java Represents Integer Types Java and Floating-Point Numbers Java’s Standard Library of Mathematical Functions
Java 8 Date and Time
Introducing the Java 8 Date and Time API Queries Adjusters Legacy Date and Time
Summary
10. File Handling and I/O
Classic Java I/O
Files Streams Readers and Writers try-with-resources Revisited Problems with Classic I/O
Modern Java I/O
Files Path
NIO Channels and Buffers
ByteBuffer Mapped Byte Buffers
Async I/O
Future-Based Style Callback-Based Style Watch Services and Directory Searching
Networking
HTTP TCP IP
11. Classloading, Reflection, and Method Handles
Class Files, Class Objects, and Metadata
Examples of Class Objects Class Objects and Metadata
Phases of Classloading
Loading Verification Preparation and Resolution Initialization
Secure Programming and Classloading Applied Classloading
Classloader Hierarchy
Reflection
When to Use Reflection How to Use Reflection Dynamic Proxies
Method Handles
MethodType Method Lookup Invoking Method Handles
12. Java Platform Modules
Why Modules?
Modularizing the JDK
Writing Your Own Modules
Basic Modules Syntax Building a Simple Modular Application The Module Path Automatic Modules Open Modules Services Multi-Release JARs Converting to a Multi-Release JAR Migrating to Modules Custom Runtime Images
Issues with Modules
Unsafe and Related Problems Lack of Versioning Slow Adoption Rates
Summary
13. Platform Tools
Command-Line Tools Introduction to JShell Summary
A. Additional Tools
Introduction to Nashorn
Non-Java Languages on the JVM Motivation
Executing JavaScript with Nashorn
Running from the Command Line Using the Nashorn Shell
Nashorn and javax.script
Introducing javax.script with Nashorn
Advanced Nashorn
Calling Java from Nashorn Nashorn’s JavaScript Language Extensions Under the Hood
The Future of Nashorn and GraalVM VisualVM
Index
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion