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

Index
Foreword Preface
Changes in the Sixth Edition Contents of This Book Related Books Examples Online Conventions Used in This Book Request for Comments Safari® Books Online 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 PHP 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 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 Implementing Multiple Interfaces Default Methods Marker Interfaces
Java Generics
Introduction to Generics Generic Types and Type Parameters Diamond Syntax Type Erasure Wildcards Compile and Runtime Typing
Enums and Annotations
Enums Annotations Defining Custom Annotations Type Annotations
Nested Types
Static Member Types Nonstatic Member Classes Local Classes Lexical Scoping and Local Variables Anonymous Classes How Nested Types Work
Lambda Expressions
Lambda Expression Conversion Method References Functional Programming
Conclusion
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 Instance Methods or Class Methods? Composition Versus Inheritance Field Inheritance and Accessors Singleton
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
Collecting the Old Generation Other Collectors
Finalization
Finalization Details
Java’s Support for Concurrency
Thread Lifecycle Visibility and Mutability Exclusion and Protecting State volatile Useful 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
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 Querying Utility Methods Special-case collections Arrays and Helper Methods
Lambda Expressions in the Java Collections
Functional Approaches The Streams API
Conclusion
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
Conclusion
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. Nashorn
Introduction to Nashorn
Non-Java Languages on the JVM Motivation
Executing JavaScript with Nashorn
Running from the Command Line Using the Nashorn Shell Scripting with jjs
Nashorn and javax.script
Introducing javax.script with Nashorn
Advanced Nashorn
Calling Java from Nashorn Nashorn’s JavaScript Language Extensions Under the Hood
Conclusion
Project Avatar
13. Platform Tools and Profiles
Command-Line Tools VisualVM Java 8 Profiles
Motivation Compact Profiles
Conclusion
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