Index
Symbols
- ! (exclamation point)
- " (quotes, double)
- $ character, Naming and Capitalization Conventions
- % (percent sign)
- & (ampersand)
- ' (quotes, single)
- ( ) (parentheses)
- * (asterisk)
- + (plus sign)
- ++ (increment) operator, Operator summary table, Side effects, Increment and Decrement Operators, The while Statement
- += (add assignment) operator, Operator summary table, String Concatenation Operator, Assignment Operators
- addition operator, Operator summary table, Arithmetic Operators
- string concatenation operator, Operator summary table, String Concatenation Operator, String literals, String concatenation
- unary plus operator, Operator summary table
- , (comma) separators (tokens), Punctuation
- - (minus sign)
- -- (decrement) operator, Operator summary table, Increment and Decrement Operators
- -= (subtract assignment) operator, Operator summary table, Assignment Operators
- subtraction operator, Operator summary table, Operand number and type, Arithmetic Operators
- unary minus operator, Operator summary table, Operand number and type, Arithmetic Operators
- . (dot)
- / (slash)
- 0 (zero)
- :: (colons) separators (tokens), Punctuation
- ; (semicolon)
- < > (angle brackets)
- < (less than) operator, Operator summary table, Comparison Operators
- << (left shift) operator, Bitwise and Shift Operators
- << (signed left shift) operator, Operator summary table
- <<= (left shift assignment) operator, Operator summary table, Assignment Operators
- <= (less than or equal to) operator, Operator summary table, Comparison Operators
- > (greater than) operator, Operator summary table, Comparison Operators
- >= (greater than or equal to) operator, Operator summary table, Comparison Operators
- >> (signed right shift) operator, Operator summary table, Bitwise and Shift Operators
- >>= (right shift assignment) operator, Operator summary table, Assignment Operators
- >>> (unsigned right shift) operator, Operator summary table, Bitwise and Shift Operators
- >>>= (unsigned right shift assignment) operator, Operator summary table, Assignment Operators
- homogeneous collections and, Introduction to Generics
- = (equals sign)
- ? (question mark)
- @ (at sign)
- [ ] (brackets)
- \ (backslash)
- \\ (backslash)
- _ (underscore), Reserved Words
- { } (curly braces)
- | (vertical bar)
- ~ (tilde), bitwise complement operator, Operator summary table, Bitwise and Shift Operators
- … (ellipses)
- ‸ (caret)
- → (lambda arrow) operator, Operator summary table, Special Operators
A
- abs(), Java’s Standard Library of Mathematical Functions
- abstract classes, Method Modifiers, Abstract Classes and Methods-Reference Type Conversions
- abstract methods, Method Modifiers, Abstract Classes and Methods-Reference Type Conversions
- access control
- access modifiers, Method Modifiers, Basic OO Definitions
- accessor methods, field inheritance and, Field Inheritance and Accessors-Field Inheritance and Accessors
- addition operator (+), Arithmetic Operators
- adjusters
- allocateDirect(), ByteBuffer
- allocation table, Introducing Mark-and-Sweep
- Android, What Is the Java Ecosystem?
- annotations (annotated types), Annotations-Type Annotations
- anonymous classes, Lambda Expressions, Anonymous Classes-Anonymous Classes
- Apache Commons project, Globally Unique Package Names
- application classloader, Application classloader
- apply(), Map
- arithmetic operators, Arithmetic Operators
- ArithmeticException, Integer Types
- array covariance, Array type widening conversions
- array literal, Special Operators
- arrayCopy(), Copying arrays, Arrays and Helper Methods
- ArrayDeque class, Querying
- ArrayIndexOutOfBoundsException, Array bounds
- ArrayList class, Random access to Lists
- arrays, Arrays-Multidimensional Arrays
- accessing elements, Special Operators, Accessing array elements, Accessing array elements
- array bounds, Array bounds
- array types, Array Types-C compatibility syntax
- as operand type, Increment and Decrement Operators, The instanceof Operator
- bounds, Array bounds
- C compatibility syntax, C compatibility syntax
- conversion rules, Reference Type Conversions
- converting to/from objects, Arrays and Helper Methods
- copying, Copying arrays
- creating and initializing, Creating and Initializing Arrays
- creation with new operator, Special Operators
- initializers, Array initializers
- iterating, The foreach Statement, Iterating arrays
- Java Collections and, Arrays and Helper Methods
- multidimensional, Multidimensional Arrays
- type widening conversions, Array type widening conversions
- types, Array Types-C compatibility syntax
- using, Using Arrays-Array utilities
- utility methods for working with, Array utilities
- Arrays class, Array utilities
- ArrayStoreException, Array type widening conversions
- ASCII escape sequences, The char Type
- asPredicate(), Regular Expressions
- assert statements, The assert Statement-Enabling assertions
- AssertionError, The assert Statement
- assertions, The assert Statement
- assignment operators, Assignment Operators
- associativity, Associativity
- Async I/O, Async I/O-Watch Services and Directory Searching
- AsynchronousFileChannel (see async I/O)
- @author doc-comment tag, Doc-Comment Tags
- autoboxing, Boxing and Unboxing Conversions
- AutoCloseable interface, try-with-resources Revisited
- automatic imports, Importing Types
- automatic modules, Automatic Modules
B
- \b (escape sequence for backspace), The char Type
- backward compatibility, interfaces and, Backward compatibility
- benign data race, Hash codes and effective immutability
- BigDecimal, BigDecimal
- binary operators, Operand number and type
- Bindings interface, The javax.script API
- bitwise operators, Bitwise and Shift Operators
- bitwise OR operator, Bitwise and Shift Operators
- blocking queue, defined, The Queue and BlockingQueue Interfaces
- BlockingQueue interface, The Queue and BlockingQueue Interfaces-Querying
- body
- Boolean operators, Boolean Operators-Boolean Operators
- boolean type, The boolean Type
- bootstrap classloader, Bootstrap classloader
- bound method reference, Method References, forEach
- bounded type parameters, Bounded Type Parameters-Bounded Type Parameters
- bounded wildcards, Bounded wildcards
- boxing and unboxing conversions, Boxing and Unboxing Conversions
- boxing conversions, Boxing and Unboxing Conversions
- break statements, The break Statement, finally
- BufferedReader class, Readers and Writers
- buffers, NIO, NIO Channels and Buffers-Mapped Byte Buffers
- byte type, Integer Types, Return type
- ByteBuffer class, ByteBuffer-ByteBuffer
- bytecode
- byte[], ByteBuffer
C
- C#, using keyword, try-with-resources Revisited
- C/C++
- array compatibility syntax, C compatibility syntax
- as model for Java language, What Is the Java Language?
- compatibility syntax in variable declarations, C compatibility syntax
- enum types in, Enums
- interchangeability of integers/pointers, Secure Programming and Classloading
- Java compared to, Java Compared to C, Java Compared to C++
- operator precedence, Precedence
- pointers or memory addresses, references as, Reference Versus Primitive Types
- switch statement, The switch Statement
- using native methods to interface Java code to C/C++ libraries, Method Modifiers
- virtual keyword, Virtual method lookup
- Callable interface, JavaScript functions and Java lambda expressions, Under the Hood
- callback-based style, for async I/O, Callback-Based Style
- camel case, Identifiers, Naming and Capitalization Conventions
- capitalization conventions, Naming and Capitalization Conventions-Naming and Capitalization Conventions
- captured variable, Lexical Scoping and Local Variables
- case labels (switch statements), The switch Statement
- case sensitivity, Case Sensitivity and Whitespace
- casts, Primitive Type Conversions
- catch clause, catch, Multiple catch clauses
- ceil(), Java’s Standard Library of Mathematical Functions
- channels, NIO Channels and Buffers-Mapped Byte Buffers
- char type, The char Type, Return type
- character sets, The Unicode Character Set
- checked exceptions, Checked and Unchecked Exceptions-Working with checked exceptions
- Class class, Type literals
- class field, Class Fields
- class files, What Is the JVM?
- class hierarchy, Superclasses, Object, and the Class Hierarchy, Reference Type Conversions
- class keyword, Class Definition Syntax
- class methods, Class Methods
- Class object
- class objects, Examples of Class Objects-Class Objects and Metadata
- class(es), Introduction to Classes and Objects-Lambda Expressions
- abstract, Abstract Classes and Methods-Reference Type Conversions
- access control, Access to classes-Member access summary
- basic object-oriented definitions, Basic OO Definitions
- class hierarchy, Superclasses, Object, and the Class Hierarchy
- core classes of Java platform, Packages and the Java Namespace
- defined, Introduction to Classes and Objects, Basic OO Definitions
- defining a class, Defining a Class
- definition syntax, Class Definition Syntax
- enums, Enums
- extending, Extending a Class-Final classes
- fields and methods, Fields and Methods-How the this Reference Works
- final, Final classes
- hiding data within (see encapsulation)
- hierarchy, Superclasses, Object, and the Class Hierarchy
- in object-oriented programming, Overview of Classes-Class Definition Syntax
- initializer blocks, Initializer blocks
- name collisions, preventing, Globally Unique Package Names
- names, simple and fully qualified, Importing Types
- naming conventions, Naming and Capitalization Conventions
- subclasses and inheritance, Subclasses and Inheritance-Invoking an overridden method
- superclasses, Superclasses, Object, and the Class Hierarchy
- Class.forName(), Applied Classloading
- classic Java I/O, Classic Java I/O-Problems with Classic I/O
- classloading, Phases of Classloading-Custom classloader
- application classloader, Application classloader
- applied, Applied Classloading-Custom classloader
- bootstrap classloader, Bootstrap classloader
- custom classloader, Custom classloader
- extension classloader, Platform classloader
- hierarchy of classloaders, Classloader Hierarchy-Custom classloader
- initialization phase, Initialization
- loading phase, Loading
- phases of, Phases of Classloading-Initialization
- platform classloader, Platform classloader
- preparation and resolution, Preparation and Resolution
- secure programming, Secure Programming and Classloading-Secure Programming and Classloading
- system classloader, Application classloader
- verification phase, Verification
- ClassNotFoundException, Applied Classloading, JavaClass and JavaPackage
- clone(), Array Types, Copying arrays
- Cloneable interface, Array Types, Copying arrays
- CloneNotSupportedException, Array Types
- closures, Lexical Scoping and Local Variables
- @code doc-comment tag, Inline Doc-Comment Tags
- collect(), Filter
- Collection interface, The Collection Interface-The Collection Interface
- collection views, The Map Interface
- collections, Working with Java Collections-Summary
- arrays and helper methods, Arrays and Helper Methods
- basics, Introduction to Collections API-Arrays and Helper Methods
- BlockingQueue interface, The Queue and BlockingQueue Interfaces-Querying
- Collection interface, The Collection Interface-The Collection Interface
- iterating over with foreach loops, The foreach Statement
- Java Streams and (see Java Streams)
- List interface, The List Interface-Random access to Lists
- Map interface, The Map Interface-The Map Interface
- Queue interface, The Queue and BlockingQueue Interfaces-Querying
- Set interface, The Set Interface-The Set Interface
- special-case collections, Special-case collections
- utility methods, Utility Methods-Special-case collections
- colliding default method, Implementation of default methods
- command-line tools, Command-Line Tools
- comments, in Java programs, Comments
- compacting collector, Evacuation
- compareTo(), Comparable::compareTo()
- comparison operators, Comparison Operators
- compilation units, Java Programs from the Top Down
- compile-time typing, Compile and Runtime Typing
- compilers
- CompletionHandler interface, Callback-Based Style
- composition, inheritance vs., Composition Versus Inheritance-Composition Versus Inheritance
- compound statement, Compound Statements
- concatenation, of strings, String concatenation
- concurrency, Java’s Approach to Memory and Concurrency
- (see also memory management; threads)
- deprecated methods of threads, Deprecated Methods of Thread
- exclusion and protecting state, Exclusion and Protecting State-Exclusion and Protecting State
- Java's support for, Java’s Support for Concurrency-destroy()
- safety, Concurrent safety
- synchronize statement, The synchronized Statement
- thread lifecycle, Thread Lifecycle-Thread Lifecycle
- useful methods of threads, Useful Methods of Thread-setUncaughtExceptionHandler()
- visibility and mutability, Visibility and Mutability
- volatile keyword, volatile
- working with threads, Working with Threads
- concurrency primitives, The synchronized Statement
- concurrent collector, The HotSpot Heap
- Concurrent Mark-and-Sweep (CMS), Concurrent Mark-and-Sweep
- concurrent safety, Concurrent safety
- ConcurrentHashMap class, The Map Interface
- ConcurrentMap interface, The Map Interface
- ConcurrentSkipListMap class, The Map Interface
- conditional AND operator (&&), Boolean Operators
- conditional operator (? :), The Conditional Operator
- Constant Pool, Class Objects and Metadata
- constants
- constructors, Special Operators, Defining Methods
- continue statements, Labeled Statements, The continue Statement, finally
- conventions, programming/documentation, Programming and Documentation Conventions-Conventions for Portable Programs
- classes, Naming and Capitalization Conventions
- constants, Naming and Capitalization Conventions
- doclets, Doclets
- enums, Naming and Capitalization Conventions
- fields, Naming and Capitalization Conventions
- interfaces, Naming and Capitalization Conventions
- Java documentation comments, Java Documentation Comments-Doclets
- local variables, Naming and Capitalization Conventions
- methods, Naming and Capitalization Conventions
- modules, Naming and Capitalization Conventions
- naming and capitalization conventions, Naming and Capitalization Conventions-Naming and Capitalization Conventions
- packages, Naming and Capitalization Conventions
- parameters, Naming and Capitalization Conventions
- portable code conventions, Conventions for Portable Programs-Conventions for Portable Programs
- practical naming, Practical Naming
- static final constant, Naming and Capitalization Conventions
- types, Naming and Capitalization Conventions
- variables, Naming and Capitalization Conventions
- conversions
- CopyOnWriteArrayList class, Random access to Lists
- CopyOnWriteArraySet class, The Set Interface
- CopyOption interface, Files
- counters for loops, incrementing, The while Statement
- countStackFrames(), suspend(), resume(), and countStackFrames()
- covariance, generics and, Introducing Covariance-Introducing Covariance
- covariant return, Overriding Superclass Methods
- cross-references, in doc comments, Cross-References in Doc Comments-Cross-References in Doc Comments
- currency symbols in identifiers, Identifiers
- custom annotations, defining, Defining Custom Annotations
- custom classloader, Custom classloader
- custom runtime images, JMPS and, Custom Runtime Images
D
- daemon thread, setDaemon()
- data encapsulation (see encapsulation)
- data formats, handling of common, Handling Common Data Formats-Summary
- data hiding (see encapsulation)
- data types
- array elements, Array Types
- array index expressions, Iterating arrays
- array types, Array Types-C compatibility syntax
- boolean types, The boolean Type
- boxing and unboxing conversions, Boxing and Unboxing Conversions
- char types, The char Type
- conversions, Primitive Type Conversions
- expressions in switch statements, The switch Statement
- floating-point types, Floating-Point Types-Floating-Point Types
- instanceof operator, The instanceof Operator
- integer types, Integer Types
- of operands, Operand number and type
- primitive, Primitive Data Types-Primitive Type Conversions
- reference, Reference Types-Boxing and Unboxing Conversions
- type conversion or casting with ( ), Special Operators
- date and time API, Java 8 Date and Time-Legacy Date and Time
- debugging, using assertions, The assert Statement
- decorator pattern, Composition Versus Inheritance
- decrement operator (--), Increment and Decrement Operators, Increment and Decrement Operators
- default access, Access to members
- default constructor, The default constructor
- default fall-through, The switch Statement
- default implementation, Implementation of default methods
- default keyword, Other Reference Types
- default methods
- default: label, The switch Statement
- defineClass(), Loading
- DELETE method (HTTP), HTTP
- @deprecated doc-comment tag, Doc-Comment Tags
- destroy(), destroy()
- diamond inheritance, Implementation of default methods
- diamond syntax, Diamond Syntax
- direct buffers, ByteBuffer
- directory streams, Async I/O, Watch Services and Directory Searching
- division operator, Arithmetic Operators
- do statements, The do Statement, The continue Statement
- doc comments, Comments, Java Documentation Comments-Doc Comments for Packages
- doc-comment tags, Doc-Comment Tags-Doc-Comment Tags
- doclets, Doclets
- @docRoot doc-comment tag, Inline Doc-Comment Tags
- documentation (see conventions, programming/documentation) (see javadoc)
- domain names in package names, Globally Unique Package Names
- double type, Floating-Point Types
- dynamic bytecode, Nashorn and, Under the Hood
- dynamic proxies, Dynamic Proxies-Dynamic Proxies
- dynamically typed language, The Java Type System
E
- eager evaluation, Lazy evaluation
- ecosystem, Java, What Is the Java Ecosystem?
- effectively final variable, Lexical Scoping and Local Variables
- effectively immutable classes, Hash codes and effective immutability
- else clause, The if/else Statement
- else if clause, The else if clause
- empty collections, Collections class methods for, Special-case collections
- empty statements, The Empty Statement
- encapsulation, Basic OO Definitions, Data Hiding and Encapsulation-Data Accessor Methods
- endianness, bytecode and, Is bytecode really machine independent? What about things like endianness?
- enums (enumerated types), Enums, Naming and Capitalization Conventions
- equality operator (==), Floating-Point Types, Comparison Operators
- equals(), equals()
- Error class, Checked and Unchecked Exceptions
- escape sequences
- evacuating collectors, Evacuation
- evacuation, Evacuation
- eval(), Introducing javax.script with Nashorn
- evaluation of expressions
- @exception doc-comment tag, Doc-Comment Tags
- exception handlers, The throw Statement
- exception handling, Exceptions and Exception Handling
- exceptions
- exclusion, protecting state with, Exclusion and Protecting State-Exclusion and Protecting State
- execution environment, JVM as, What Is the JVM?
- ExecutorService, JavaScript functions and Java lambda expressions
- exp(), Java’s Standard Library of Mathematical Functions
- exponential notation, Floating-Point Types
- exports keyword, Basic Modules Syntax
- expression statement, Expression Statements
- expressions, Expressions and Operators
- array creation, Creating and Initializing Arrays
- defined, Expressions and Operators
- following return statements, The return Statement
- in assert statements, The assert Statement
- in for loops, The for Statement
- in if statements, The if/else Statement
- in switch statements, The switch Statement
- in synchronize statements, The synchronized Statement
- in throw statements, The throw Statement
- in while statements, The while Statement
- operators and, Expressions and Operators-Special Operators
- statements vs., Statements
- extending interfaces, Extending Interfaces
- extends clause, Extending Interfaces
- extension classloader, Platform classloader
- extensions, standard, Packages and the Java Namespace
F
- \f (form feed) escape sequence, The char Type
- fall-through, The switch Statement
- field hiding, overriding vs., Overriding is not hiding
- fields, Fields and Methods-How the this Reference Works
- File class, Importing Types
- file structure, Java, Java Source File Structure
- FileChannel class, Mapped Byte Buffers
- FileInputStream class, Streams
- filenames, hardcoded, Conventions for Portable Programs
- FileOutputStream class, Streams
- FileReader class, Readers and Writers
- FileSystem class, Path
- FileVisitor interface, Watch Services and Directory Searching
- filter(), Functional Programming
- FilterInputStream class, Readers and Writers
- final classes, Class Definition Syntax, Final classes
- final modifier, Field Declaration Syntax
- finalization (resource management technique), Finalization-Finalization Details
- finalize(), Finalization-Finalization Details
- finally clause (try/catch/finally), finally
- first-in, first-out (FIFO) queues, The Queue and BlockingQueue Interfaces
- flatMap(), Lazy evaluation
- floating-point numbers, Java and Floating-Point Numbers-BigDecimal
- floating-point types, Floating-Point Types-Floating-Point Types
- as approximations, Floating-Point Types
- conversions, Primitive Type Conversions, Primitive Type Conversions
- division by zero, Arithmetic Operators
- Double class, Floating-Point Types
- double type, Floating-Point Types, Return type
- Float class, Floating-Point Types
- float type, Floating-Point Types, Return type
- floating-point arithmetic, Floating-Point Types, Arithmetic Operators
- floating-point literals, Floating-Point Types
- return type for operators, Return type
- strictfp modifier for methods, Method Modifiers
- testing if value is NaN, Comparison Operators
- wrapper classes, Integer Types
- floor(), Java’s Standard Library of Mathematical Functions
- flow-control statements, Statements
- for statements, The for Statement
- foreach loops, Foreach loops and iteration-Foreach loops and iteration, Foreach loops
- foreach statements, The foreach Statement
- forEach(), forEach
- format()
- Formatter class, Conventions for Portable Programs
- free list, Introducing Mark-and-Sweep
- functional collections, Java Streams and Lambda Expressions
- functional interfaces, Lambda Expressions
- functional programming
- @FunctionalInterface annotation, Annotations, Lambda Expression Conversion
- future-based style, for async I/O, Future-Based Style
G
- garbage collection (GC), How the JVM Optimizes Garbage Collection
- Garbage First (G1) collector, The HotSpot Heap
- generational garbage collector, How the JVM Optimizes Garbage Collection
- generic methods, Defining Methods, Generic Methods
- generics, Java Generics-Using and Designing Generic Types
- basics, Introduction to Generics
- bounded type parameters, Bounded Type Parameters-Bounded Type Parameters
- bounded wildcards, Bounded wildcards
- compile-time/runtime typing, Compile and Runtime Typing
- covariance, Introducing Covariance-Introducing Covariance
- diamond syntax, Diamond Syntax
- generic methods, Generic Methods
- type erasure, Type Erasure
- types/type parameters, Generic Types and Type Parameters
- using and designing, Using and Designing Generic Types
- wildcards, Wildcards
- GET method (HTTP), HTTP
- get(), Path, Future-Based Style, Introducing javax.script with Nashorn
- getClass(), Examples of Class Objects
- getId(), getId()
- getInstance(), Singleton
- getName(), setName() and getName()
- getPriority(), getPriority() and setPriority()
- getProperty(), JavaClass and JavaPackage
- getState(), getState()
- GraalVM, The Future of Nashorn and GraalVM
- Graceful Completion pattern, volatile
- Gradle, Converting to a Multi-Release JAR
- greater than operator (>), Comparison Operators
- greater than or equal to operator (>=), Comparison Operators
H
- hash codes, Hash codes and effective immutability
- hashCode(), hashCode()
- HEAD method (HTTP), HTTP
- heap (see HotSpot heap)
- heterogeneous collections, Introduction to Generics
- hidden fields, overriding vs. field hiding, Overriding is not hiding
- homogeneous collections, Introduction to Generics
- HotSpot heap, The HotSpot Heap-Concurrent Mark-and-Sweep
- HotSpot JVM, What Is the JVM?
- HTTP, HTTP-HTTP
I
- I/O (input/output), File Handling and I/O-IP
- Async I/O, Async I/O-Watch Services and Directory Searching
- ByteBuffer, ByteBuffer-ByteBuffer
- classic Java I/O, Classic Java I/O-Problems with Classic I/O
- HTTP, HTTP-HTTP
- IP, IP
- MappedByteBuffer, Mapped Byte Buffers
- method names, Defining Methods
- modern Java I/O, Modern Java I/O-Path
- networking, Networking-IP
- NIO channels and buffers, NIO Channels and Buffers-Mapped Byte Buffers
- TCP, TCP-TCP
- identifiers, Identifiers
- IEEE-754 floating-point arithmetic standard, Java and Floating-Point Numbers
- if statements, The if/else Statement
- if/else statements, The if/else Statement-The else if clause
- immutability
- implementation-specific code, Conventions for Portable Programs
- implements keyword, Implementing an Interface
- import declarations, Java Programs from the Top Down, Importing Types
- import static declarations, Importing Static Members, Static member imports and overloaded methods
- increment operator (++), Side effects, Increment and Decrement Operators
- incremental compaction, The HotSpot Heap
- indexes
- infinite loops
- infinity
- inheritance
- @inheritDoc doc-comment tag, Inline Doc-Comment Tags
- initialization, classloading and, Initialization
- initialize expressions (for loops), The for Statement
- initializers
- initializing objects
- inline doc-comment tags, Inline Doc-Comment Tags
- inner classes (see nested types)
- InputStream class, Streams
- InputStreamReader class, Readers and Writers
- instance fields, Instance Fields
- instance methods, Instance Methods, Instance Methods or Class Methods?
- instanceof operator, Operator summary table, The instanceof Operator
- Instant class, Introducing the Java 8 Date and Time API
- int type, Integer Types
- integer literals, Integer Types
- integer types, Integer Types, How Java Represents Integer Types
- interfaces, Interfaces-Marker Interfaces
- abstract classes vs., Interfaces Versus Abstract Classes
- annotations, Annotations-Type Annotations
- backward compatibility, Backward compatibility
- default implementation, Implementation of default methods-Implementation of default methods
- default methods, Default Methods-Implementation of default methods
- defining, Defining an Interface
- definition of term, Other Reference Types
- extending, Extending Interfaces
- implementing, Implementing an Interface-Implementing an Interface
- marker, Marker Interfaces
- naming conventions, Naming and Capitalization Conventions
- restrictions on, Defining an Interface
- intermediate representation, bytecode as, What is bytecode?
- interpreted languages, Is Java an interpreted language?
- interrupt(), interrupt()
- introspection (see Method Handles) (see Reflection)
- invoke(), Method objects, Invoking Method Handles
- invokedynamic bytecode, Method Handles
- IOException objects, Working with checked exceptions
- IP, IP
- irrational numbers, Java and Floating-Point Numbers
- isAlive(), isAlive()
- isDone(), Future-Based Style
- isJavaIdentifierPart(): Character, Identifiers
- isJavaIdentifierStart(): Character, Identifiers
- isNan(), Comparison Operators
- Iterable interface, Foreach loops and iteration, Random access to Lists
- iteration
- Iterator interface, Foreach loops and iteration
- Iterator object, foreach loop and, What foreach cannot do
- iterator(), Random access to Lists
J
- JAR (Java archive) files, Defining and Running Java Programs
- Java (generally)
- answering criticisms of, Answering Some Criticisms of Java-Too Corporate
- calling from Nashorn, Calling Java from Nashorn-JavaScript functions and Java lambda expressions
- corporateness of, Too Corporate
- documentation comments, Java Documentation Comments-Doclets
- history, A Brief History of Java and the JVM-A Brief History of Java and the JVM
- interpreted languages and, Is Java an interpreted language?
- other programming languages compared to, Comparing Java to Other Languages
- overview of versions 1.0 through 11, A Brief History of Java and the JVM-A Brief History of Java and the JVM
- pace of change, Slow to Change
- performance problems, Performance Problems
- security, Java Security
- security vulnerabilities, Insecure
- syntax (see syntax, Java)
- verbosity of, Overly Verbose
- java (Nashorn object), JavaClass and JavaPackage
- Java 11, Foreword, Changes in the Seventh Edition
- Java 8, Foreword, Changes in the Seventh Edition
- Date and Time API, Java 8 Date and Time-Legacy Date and Time
- ElementType values, Type Annotations
- G1 collector, The HotSpot Heap
- interfaces in, Interfaces, Default Methods, Interfaces Versus Abstract Classes
- lamdba expressions (see lambda expressions)
- language changes in, What Is the Java Language?
- method references, Method References
- Nashorn (see Nashorn)
- security issues, Java Security, Insecure
- sort(), Implementation of default methods
- static methods, Defining an Interface
- Streams, Java Streams and Lambda Expressions
- updates in, A Brief History of Java and the JVM
- Java 9, Foreword
- Java Collections (see collections)
- java command, Defining and Running Java Programs
- Java ecosystem, What Is the Java Ecosystem?
- Java file structure, Java Source File Structure
- Java generics (see generics)
- Java interpreter, Defining and Running Java Programs
- Java language (see syntax, Java)
- Java Language Specification (JLS), What Is the Java Language?
- Java Platform Modules System (JPMS), Java Platform Modules-Summary
- adoption rates, Slow Adoption Rates
- automatic modules, Automatic Modules
- basic modules syntax, Basic Modules Syntax
- building a simple modular application, Building a Simple Modular Application
- custom runtime images, Custom Runtime Images
- decision to migrate applications to use modules, Migrating to Modules-Migrating to Modules
- deploying software as multi-release JAR, Converting to a Multi-Release JAR
- issues with modules, Issues with Modules-Slow Adoption Rates
- lack of versioning, Lack of Versioning
- modularizing the JDK, Modularizing the JDK-Modularizing the JDK
- module path, The Module Path
- multi-release JARs, Multi-Release JARs-Converting to a Multi-Release JAR
- open modules, Open Modules-Open Modules
- reasons for creation of, Why Modules?-Modularizing the JDK
- services mechanism, Services
- Unsafe class and related problems, Unsafe and Related Problems
- writing your own modules, Writing Your Own Modules-Custom Runtime Images
- Java programming environment, Introduction to the Java Environment-Too Corporate
- Java programs
- Java Streams, Java Streams and Lambda Expressions-Summary
- Java Virtual Machine (JVM)
- java.awt.List, Naming conflicts and shadowing
- java.base, Modularizing the JDK
- java.io.IOException objects, Working with checked exceptions
- java.io.ObjectInputStream class, Creating an Object
- java.io.PrintStream, A word about System.out.println()
- java.lang package, Importing Types
- java.lang.ClassLoader, Applied Classloading-Custom classloader
- java.lang.Double, Introducing javax.script with Nashorn
- java.lang.Error, Exceptions and Exception Handling
- java.lang.Exception, Exceptions and Exception Handling
- java.lang.Iterable, Foreach loops and iteration
- java.lang.Math, Java and Floating-Point Numbers
- java.lang.Object, Array Types
- java.lang.reflect, Variable-Length Argument Lists
- java.lang.String, Final classes
- java.lang.System, Arrays and Helper Methods, JavaClass and JavaPackage
- java.lang.System.out, A word about System.out.println()
- java.lang.System.println(), JavaClass and JavaPackage
- java.lang.Throwable, Exceptions and Exception Handling
- java.net package, Networking
- java.nio.channels package, Callback-Based Style
- java.nio.file package, Modern Java I/O, Watch Services and Directory Searching
- java.se.ee module, Modularizing the JDK
- java.time package, Introducing the Java 8 Date and Time API
- java.time.chrono package, Introducing the Java 8 Date and Time API
- java.time.Duration package, Introducing the Java 8 Date and Time API
- java.time.format package, Introducing the Java 8 Date and Time API
- java.time.temporal package, Introducing the Java 8 Date and Time API
- java.time.zone package, Introducing the Java 8 Date and Time API
- Java.type(), JavaClass and JavaPackage
- java.util package
- java.util.AbstractList, Interfaces Versus Abstract Classes
- java.util.Arrays class, Array utilities
- java.util.Collections
- java.util.concurrent, Java’s Support for Concurrency, The Set Interface, VisualVM
- java.util.Formatter, Conventions for Portable Programs
- java.util.function, Can Default Methods Be Used as Traits?, Map
- java.util.Iterable, Foreach loops and iteration
- java.util.Iterator, Nonstatic Member Classes, Foreach loops and iteration
- java.util.List, Naming conflicts and shadowing
- java.util.RandomAccess, Marker Interfaces
- java.util.regex package, Regular Expressions
- javac
- JavaClass objects, JavaClass and JavaPackage, JavaClass and JavaPackage
- javadoc, Comments
- JavaPackage, Nashorn and, JavaClass and JavaPackage
- JavaScript
- javax., package names beginning with, Packages and the Java Namespace
- javax.net package, Networking
- javax.script, Nashorn and javax.script-The javax.script API
- JDK (Java Development Kit), modularizing of, Modularizing the JDK-Modularizing the JDK
- jjs command, Executing JavaScript with Nashorn, Using the Nashorn Shell
- join(), join()
- jrunscript command, Executing JavaScript with Nashorn
- JShell, Introduction to JShell-Introduction to JShell
- JUnit, The assert Statement
- jvisualvm tool, VisualVM, VisualVM
- JVM Compiler Interface (JVMCI), The Future of Nashorn and GraalVM
L
- labeled statements, Labeled Statements, The break Statement
- lambda expressions, Special Operators, Defining Methods, Lambda Expressions, Lambda Expressions-Lexical Scoping and Local Variables
- anonymous classes and, Anonymous Classes
- basics, Lambda Expressions-Lambda Expressions
- conversion, Lambda Expression Conversion
- defined, Lambda Expressions
- functional programming and, Functional Programming-Functional Programming
- Java Streams and, Java Streams and Lambda Expressions-Summary
- lexical scoping and local variables, Lexical Scoping and Local Variables-Lexical Scoping and Local Variables
- method references and, Method References
- method references vs., Lambdas Versus Method References
- nested classes vs., Lambdas Versus Nested Classes
- object-oriented design and, Object-Oriented Design with Lambdas-Lambdas Versus Method References
- using JavaScript function as, JavaScript functions and Java lambda expressions
- last in, first-out (LIFO) queues, The Queue and BlockingQueue Interfaces
- Latin-1 character set, The char Type
- lazy evaluation, Lazy evaluation
- left shift operator (<<), Bitwise and Shift Operators
- length field, Arrays
- length of arrays, Arrays, Creating and Initializing Arrays
- less than operator (<), Comparison Operators
- less than or equal to operator (<=), Comparison Operators
- lexical scoping, Lexical Scoping and Local Variables
- lexical structure
- lifecycle, of Java program, The Lifecycle of a Java Program-Can other languages run on the JVM?
- line separators, Conventions for Portable Programs
- @link doc-comment tag, Structure of a Doc Comment, Inline Doc-Comment Tags, Cross-References in Doc Comments
- linked lists, iterating through, using for loop, The for Statement
- LinkedList class, Random access to Lists, Querying
- LinkOption class, Files
- @linkplain doc-comment tag, Inline Doc-Comment Tags, Cross-References in Doc Comments
- List interface, The List Interface-Random access to Lists
- lists
- @literal doc-comment tag, Inline Doc-Comment Tags
- literals, Literals, Expressions and Operators
- loadClass(), Applied Classloading
- loading (classloading phase), Loading
- local classes, Local Classes-Scope of a local class
- local variable declaration statements, Local Variable Declaration Statements
- local variable type inference (var), Non-Denotable Types and var
- local variables, Local Variable Declaration Statements
- LocalDate class, The parts of a timestamp
- log(), Java’s Standard Library of Mathematical Functions
- log10(), Java’s Standard Library of Mathematical Functions
- logical operators, Boolean Operators-Boolean Operators
- long type, Integer Types, The switch Statement
- long-term support (LTS) release, Changes in the Seventh Edition, A Brief History of Java and the JVM, Slow Adoption Rates
- Lookup object, Method Lookup
- lookup queries, Method Lookup
- looping
- lvalue, Assignment Operators
M
- main thread, Java’s Support for Concurrency
- main(), The throw Statement, Defining and Running Java Programs, Defining and Running Java Programs
- MalformedURLException, Working with checked exceptions
- Map interface, The Map Interface-The Map Interface
- map(), Functional Programming, Map
- Map.Entry interface, The Map Interface
- MappedByteBuffer, Mapped Byte Buffers
- mark-and-sweep algorithm, Introducing Mark-and-Sweep-The Basic Mark-and-Sweep Algorithm
- (see also Concurrent Mark-and-Sweep (CMS))
- marker interfaces, Marker Interfaces
- Matcher class, Regular Expressions
- Math class
- mathematical functions, standard library of, Java’s Standard Library of Mathematical Functions-Java’s Standard Library of Mathematical Functions
- Maven, Converting to a Multi-Release JAR
- max(), Java’s Standard Library of Mathematical Functions
- MAX_VALUE constant
- member access operator (.), Special Operators
- member classes
- members of a class, Basic OO Definitions, Access to members-Member access summary
- memory leaks, Memory Leaks in Java
- memory management, Basic Concepts of Java Memory Management
- memory, primitive and reference types requirements, Reference Versus Primitive Types
- meta-annotations, Defining Custom Annotations
- metacharacters in regular expressions, Regular Expressions
- metadata, class objects and, Class Objects and Metadata
- method body, Defining Methods
- Method Handles, Method Handles-Invoking Method Handles
- method invocation operator (( )), Side effects, Special Operators
- Method objects, Reflection and, Method objects-Method objects
- method overloading, Defining Methods, Static member imports and overloaded methods
- method references
- method signature, Defining Methods-Defining Methods
- MethodHandles.lookup(), Method Lookup
- methods, Methods-Variable-Length Argument Lists
- abstract, Abstract Classes and Methods-Reference Type Conversions
- arguments passed to, primitive and reference types, Manipulating Objects and Reference Copies
- checked/unchecked exceptions, Checked and Unchecked Exceptions-Working with checked exceptions
- class, Class Methods
- data accessor methods, Data Accessor Methods-Data Accessor Methods
- defining, Defining Methods-Defining Methods
- instance, Instance Methods
- instance methods vs. class methods, Instance Methods or Class Methods?
- invoking an overridden method, Invoking an overridden method-Invoking an overridden method
- modifiers, Method Modifiers
- naming conventions, Naming and Capitalization Conventions
- native, Method Modifiers, Conventions for Portable Programs
- of java.lang.Object, Important Methods of java.lang.Object-clone()
- overriding superclass methods, Overriding Superclass Methods-Invoking an overridden method
- overriding vs. field hiding, Overriding is not hiding
- parameter list, Defining Methods
- signature, Defining Methods-Defining Methods
- synchronized, The synchronized Statement
- this reference, How the this Reference Works
- variable-length argument lists, Variable-Length Argument Lists
- virtual lookup, Virtual method lookup
- void, The return Statement
- MethodType objects, MethodType
- min(), Java’s Standard Library of Mathematical Functions
- MIN_VALUE constant
- modern Java I/O, Modern Java I/O-Path
- modifiers
- module descriptor, Basic Modules Syntax
- module keyword, Basic Modules Syntax
- module path, The Module Path
- module-info.java file, Basic Modules Syntax
- modules, Java Platform Modules
- modulo operator (%), Arithmetic Operators
- monitor token, Exclusion and Protecting State
- multidimensional arrays, Multidimensional Arrays
- multiple inheritance, Implementation of default methods
- multiplication operator (*), Arithmetic Operators
- multithreading (see concurrency)
- mutability
N
- \n (newlines, escaping), The char Type
- names
- namespaces
- naming conflicts, Naming conflicts and shadowing
- naming conventions (see conventions, programming/documentation)
- NaN (Not a number), Floating-Point Types
- NaN (Not-a-number)
- narrowing conversions, Primitive Type Conversions
- Nashorn, Introduction to Nashorn-The Future of Nashorn and GraalVM
- advanced use cases, Advanced Nashorn-Under the Hood
- and non-Java languages on the JVM, Non-Java Languages on the JVM
- bytecode and, Under the Hood
- calling Java from, Calling Java from Nashorn-JavaScript functions and Java lambda expressions
- dynamic code generation, Under the Hood
- foreach loops, Foreach loops
- GraalVM and, The Future of Nashorn and GraalVM
- JavaClass and, JavaClass and JavaPackage
- JavaPackage and, JavaClass and JavaPackage
- JavaScript execution, Executing JavaScript with Nashorn-Using the Nashorn Shell
- JavaScript functions and lambda expressions, JavaScript functions and Java lambda expressions
- JavaScript language extensions, Nashorn’s JavaScript Language Extensions
- javax.script and, Nashorn and javax.script-The javax.script API
- multiple catch clauses, Multiple catch clauses
- purposes of, Motivation
- running a script from the command line, Running from the Command Line
- single expression functions, Single expression functions
- using the Nashorn shell, Using the Nashorn Shell
- native methods, Method Modifiers
- natural comparison method, Comparable::compareTo()
- negative infinity, Floating-Point Types
- negative zero, Floating-Point Types
- NEGATIVE_INFINITY constant, Float and Double classes, Floating-Point Types
- nested classes, lambdas vs., Lambdas Versus Nested Classes
- nested types, Nested Types-Anonymous Classes
- networking
- new operator, Operator summary table, Side effects, Special Operators
- next(), Foreach loops and iteration
- NIO channels and buffers, NIO Channels and Buffers-Mapped Byte Buffers
- nominal typing, Marker Interfaces
- non-denotable types, Non-Denotable Types and var
- nonstatic members, Basic OO Definitions, Nonstatic Member Classes-Syntax for member classes
- not equals operator (!=), Comparison Operators
- NOT operator
- notify(), Working with Threads
- null reference, The null reference, JavaClass and JavaPackage
- numbers, Numbers and Math-Java’s Standard Library of Mathematical Functions
O
- Object class, Array type widening conversions, Reference Type Conversions
- object references, Reference Type Conversions-Reference Type Conversions
- object state, The synchronized Statement
- object-oriented design, Introduction to Object-Oriented Design in Java-Safe Java Programming
- by reference vs. pass by reference, Java Values
- composition vs. inheritance, Composition Versus Inheritance-Composition Versus Inheritance
- constants, Constants
- default methods and traits, Can Default Methods Be Used as Traits?
- exception handling, Exceptions and Exception Handling
- field inheritance and accessors, Field Inheritance and Accessors-Field Inheritance and Accessors
- important methods of java.lang.Object, Important Methods of java.lang.Object-clone()
- instance methods vs. class methods, Instance Methods or Class Methods?
- interfaces vs. abstract classes, Interfaces Versus Abstract Classes
- Java values, Java Values
- lambdas and, Object-Oriented Design with Lambdas-Lambdas Versus Method References
- safe programming, Safe Java Programming
- singleton pattern, Singleton-Singleton
- System.out.println() and, A word about System.out.println()
- object-oriented programming, Object-Oriented Programming in Java-Modifier Summary
- abstract classes and methods, Abstract Classes and Methods-Reference Type Conversions
- classes, Overview of Classes-Class Definition Syntax
- creating/initializing objects, Creating and Initializing Objects-Initializer blocks
- data hiding and encapsulation, Data Hiding and Encapsulation-Data Accessor Methods
- fields and methods, Fields and Methods-How the this Reference Works
- modifier summary, Modifier Summary
- subclasses and inheritance, Subclasses and Inheritance-Invoking an overridden method
- superclasses and class hierarchy, Superclasses, Object, and the Class Hierarchy
- object-relational mapping (ORM), Open Modules
- ObjectInputStream class, Creating an Object
- objects
- arrays as, Arrays-Multidimensional Arrays
- as operand type, Increment and Decrement Operators, The instanceof Operator
- classes and, Introduction to Classes and Objects-Lambda Expressions
- comparing, Comparing Objects
- converting to/from arrays, Arrays and Helper Methods
- creating, Creating an Object, Creating and Initializing Objects-Initializer blocks
- creation with new operator, Special Operators
- defined, Introduction to Classes and Objects, Basic OO Definitions
- in the heap, The HotSpot Heap
- initializing, Creating and Initializing Objects-Initializer blocks
- literals, Object Literals
- manipulating, Manipulating Objects and Reference Copies
- memory requirements for storing, Reference Versus Primitive Types
- using, Using an Object
- open modules, Open Modules-Open Modules
- operand, number and type of, Operand number and type
- operators, Punctuation, Expressions and Operators-Special Operators
- arithmetic, Arithmetic Operators
- assignment, Assignment Operators
- associativity, Associativity
- bitwise, Bitwise and Shift Operators
- Boolean, Boolean Operators-Boolean Operators
- comparison, Comparison Operators
- conditional, The Conditional Operator
- in statements, Statements
- increment/decrement, Increment and Decrement Operators
- instanceof, The instanceof Operator
- operand number and type, Operand number and type
- order of evaluation, Order of evaluation
- precedence of, Precedence
- return type, Return type
- shift, Bitwise and Shift Operators, Bitwise and Shift Operators
- side effects, Side effects
- special, Special Operators-Special Operators
- string concatenation, String Concatenation Operator
- summary table, Operator summary table
- optimization, bytecode and, Is bytecode optimized?
- OPTIONS method (HTTP), HTTP
- or(), Filter
- Oracle Corporation
- OutputStream class, Streams
- overflow, integer arithmetic and, Integer Types
- overloading, static member imports and, Static member imports and overloaded methods
- @Override annotation, Annotations
- overriding
P
- package access, Access to members-Member access summary
- package declarations, Java Programs from the Top Down
- package keyword, Package Declaration
- packages, Packages and the Java Namespace-Static member imports and overloaded methods
- access control, Access to packages
- declarations, Package Declaration
- doc comments for, Doc Comments for Packages
- globally unique names, Globally Unique Package Names
- importing static members, Importing Static Members, Static member imports and overloaded methods
- importing types, Importing Types
- naming conflicts and shadowing, Naming conflicts and shadowing
- naming conventions, Naming and Capitalization Conventions
- static member imports and overloaded methods, Static member imports and overloaded methods
- parallel collector, The HotSpot Heap
- ParallelOld collector, ParallelOld
- @param doc-comment tag, Doc-Comment Tags
- parameterized type, Generic Types and Type Parameters
- parameters, naming conventions for, Naming and Capitalization Conventions
- pass-by-reference language, Java Values
- pass-by-value language, Java Values
- Path type, Path-Path
- pause goals, The HotSpot Heap
- payload type, Introduction to Generics
- per-thread allocation, Evacuation
- platform classloader, Platform classloader
- Point class, Basic OO Definitions, Reference Type Conversions
- portable code, conventions for, Conventions for Portable Programs-Conventions for Portable Programs
- positive infinity, Floating-Point Types, Arithmetic Operators
- positive zero, Floating-Point Types
- POSITIVE_INFINITY constant, Float and Double classes, Floating-Point Types
- POST method (HTTP), HTTP
- post-decrement operator (--), Increment and Decrement Operators
- post-increment operator (++), Increment and Decrement Operators
- Postel's Law, TCP
- pow(), Java’s Standard Library of Mathematical Functions
- pre-decrement operator (--), Increment and Decrement Operators
- pre-increment operator (++), Increment and Decrement Operators
- precedence, operator, Precedence
- Predicate interface, Filter
- primary expressions, Expressions and Operators
- primitive types, Primitive Data Types-Primitive Type Conversions
- boolean, The boolean Type
- boxing and unboxing conversions, Boxing and Unboxing Conversions
- char, The char Type
- conversions between, Primitive Type Conversions
- conversions to strings, String Concatenation Operator
- equals operator (==), testing operand values, Comparison Operators
- floating-point types, Floating-Point Types-Floating-Point Types
- integer types, Integer Types
- reference types vs., Reference Versus Primitive Types, Comparing Objects
- String literals, String literals
- wrapper classes, Boxing and Unboxing Conversions
- printf(), Variable-Length Argument Lists, Conventions for Portable Programs
- println(), Defining Methods, toString(), JavaClass and JavaPackage
- priority queues, The Queue and BlockingQueue Interfaces
- private constructor, The default constructor
- private modifier, Field Declaration Syntax
- ProcessHandle API, Multi-Release JARs
- Producer Extends, Consumer Super (PECS) principle, Bounded wildcards
- programming conventions (see conventions)
- protected access, Access to members, Field Inheritance and Accessors
- protected modifier, Field Declaration Syntax
- pseudorandom number generator (PRNG), Java’s Standard Library of Mathematical Functions
- public modifier, Field Declaration Syntax
- punctuation characters as tokens, Punctuation
- PUT method (HTTP), HTTP
- put(), Introducing javax.script with Nashorn
- putIfAbsent(), The Map Interface
- Python, Java compared to, Java Compared to Python
R
- \r (carriage return) escape sequence, The char Type
- Random class, Java’s Standard Library of Mathematical Functions
- random(), Java’s Standard Library of Mathematical Functions
- RandomAccess interface, Random access to Lists
- raw type, Type Erasure
- reachable object, Introducing Mark-and-Sweep
- Reader and Writer classes, Streams
- reader class, Readers and Writers
- receiver object, Special Operators
- receiver of a method, Special Operators
- rectangular arrays, Multidimensional Arrays
- reduce(), Functional Programming, Reduce
- reference types, Java Programs from the Top Down, Reference Types-Boxing and Unboxing Conversions
- array types, Array Types
- as operand type, The instanceof Operator
- boxing and unboxing conversions, Boxing and Unboxing Conversions
- boxing/unboxing conversions, Boxing and Unboxing Conversions
- comparing objects, Comparing Objects
- conversions, Reference Type Conversions-Reference Type Conversions
- manipulating objects and reference copies, Manipulating Objects and Reference Copies
- null, The null reference
- operands of, testing with == operator, Comparison Operators
- pointers in C/C++ vs., Reference Versus Primitive Types
- primitive types vs., Reference Versus Primitive Types
- reflection, Reflection-Dynamic Proxies
- Reflection API, Variable-Length Argument Lists, Problems with Reflection
- region-based collector, The HotSpot Heap
- regular expressions (regex), Regular Expressions-Regular Expressions
- relational operators, Comparison Operators, Comparison Operators
- request methods (HTTP), HTTP
- requires keyword, Basic Modules Syntax
- reserved words, Reserved Words
- restricted keywords, Reserved Words, Basic Modules Syntax
- resume(), suspend(), resume(), and countStackFrames()
- @return doc-comment tag, Doc-Comment Tags
- return statements, The switch Statement, The return Statement, finally, Defining Methods
- return types
- right shift operators, Bitwise and Shift Operators
- rounding numbers, Primitive Type Conversions
- run-until-shutdown pattern, volatile
- runtime typing, Compile and Runtime Typing
- runtime-managed concurrency, Java’s Support for Concurrency
- Runtime.exec(), Conventions for Portable Programs
- Runtime::addShutdownHook, Finalization Details
- RuntimeException, Checked and Unchecked Exceptions
- rvalue, Assignment Operators
S
- safe multithreaded program, Concurrent safety
- safepoint, The Basic Mark-and-Sweep Algorithm
- safety
- scaffold methods, Streams utility default methods
- scientific notation, Floating-Point Types
- scope, of local variables, Local Variable Declaration Statements
- ScriptEngine, Introducing javax.script with Nashorn, The javax.script API
- ScriptEngineManager, Introducing javax.script with Nashorn, The javax.script API
- ScriptObjectMirror, The javax.script API
- search
- secure programming, classloading and, Secure Programming and Classloading-Secure Programming and Classloading
- security, Java Security, Insecure
- @see doc-comment tag, Doc-Comment Tags, Cross-References in Doc Comments
- separators, Punctuation
- @serial doc-comment tag, Doc-Comment Tags
- @serialData doc-comment tag, Doc-Comment Tags
- @serialField doc-comment tag, Doc-Comment Tags
- Serializable interface, Array type widening conversions
- services mechanism (JPMS), Services
- Set interface, The Set Interface-The Set Interface
- setDaemon(), setDaemon()
- setName(), setName() and getName()
- setPriority(), getPriority() and setPriority()
- setUncaughtExceptionHandler(), setUncaughtExceptionHandler()
- shell (see jjs command; JShell)
- shift operators, Bitwise and Shift Operators
- short type, Integer Types, Integer Types, Return type
- shutdown(), volatile
- side effects
- signature
- signature of a method, Defining Methods-Defining Methods
- @since doc-comment tag, Doc-Comment Tags
- single abstract method (SAM) type, Lambda Expressions
- singleton pattern, Singleton-Singleton
- singletons, Collections class methods for, Special-case collections
- snippets, Introduction to JShell
- sort()
- SortedMap interface, The Map Interface
- SortedSet interface, The Set Interface
- source file, Java, Java Source File Structure
- special operators (language constructs), Special Operators-Special Operators
- StandardCopyOption enum, Files
- standards bodies, packages named for, Packages and the Java Namespace
- start(), start()
- state, exclusion and, Exclusion and Protecting State-Exclusion and Protecting State
- statements, Java Programs from the Top Down, Statements-Enabling assertions
- assert, The assert Statement-Enabling assertions
- break, The break Statement
- compound, Compound Statements
- continue, The continue Statement
- defined by Java, summary of, Statements
- do, The do Statement
- do/while, The while Statement
- empty, The Empty Statement
- expression, Expression Statements
- expression statements, Expression Statements
- expressions vs., Statements
- for, The for Statement
- foreach, The foreach Statement
- if/else, The if/else Statement-The else if clause
- labeled, Labeled Statements
- local variable declaration, Local Variable Declaration Statements
- return, The return Statement
- switch, The switch Statement-The switch Statement
- synchronized, The synchronized Statement
- throw, The throw Statement
- try-with-resources, The try-with-resources Statement
- try/catch/finally, The try/catch/finally Statement-finally
- while, The while Statement
- statements section, synchronize statement, The synchronized Statement
- static final constant, naming conventions for, Naming and Capitalization Conventions
- static import declarations, Importing Static Members
- static initializer, Initializer blocks
- static keyword, Instance Methods or Class Methods?
- static member types, Static Member Types-Features of static member types
- static members, Importing Static Members, Basic OO Definitions
- static methods, Method Modifiers
- static modifier, Field Declaration Syntax
- static synchronized method, The synchronized Statement
- statically typed language, The Java Type System
- stop(), stop()
- stop-the-world (STW) garbage collection, The Basic Mark-and-Sweep Algorithm
- storage location, Assignment Operators
- stream abstraction, Streams
- stream(), The Streams API
- Streams API (see Java Streams)
- strictfp modifier, Method Modifiers, Class Definition Syntax, Java and Floating-Point Numbers
- String class, Final classes
- string concatenation operator (+), String Concatenation Operator, String literals, String concatenation, String concatenation
- string literals, String literals, String literals, String literals
- String type, String literals vs., String literals
- StringBuffer class, String Immutability
- StringBuilder class, String concatenation
- strings, String literals, Special Syntax for Strings-Hash codes and effective immutability
- concatenation, String concatenation
- conversions for all primitive types, String Concatenation Operator
- converting to integer values, Integer Types
- hash codes and effective immutability, Hash codes and effective immutability
- immutability, String Immutability-Hash codes and effective immutability
- literals, String literals
- String class, String literals, String literals, Packages and the Java Namespace
- toString() method, toString()
- subclasses
- access control, Access control and inheritance
- constructor chaining, Constructor Chaining and the Default Constructor
- constructors, Subclass Constructors
- default constructor, The default constructor
- defined, Basic OO Definitions
- extending a class, Extending a Class-Final classes
- final classes and, Final classes
- inheritance and, Subclasses and Inheritance-Invoking an overridden method
- superclasses and, Superclasses, Object, and the Class Hierarchy
- subList(), The List Interface
- Substrate VM, The Future of Nashorn and GraalVM
- subtraction operator (-), Arithmetic Operators
- sun.misc.Unsafe class, Unsafe and Related Problems
- super keyword
- super(), Subclass Constructors, Invoking an overridden method
- superclasses, Superclasses, Object, and the Class Hierarchy
- surrogate pairs (Unicode supplementary characters), The char Type
- survivor space, Evacuation
- suspend(), suspend(), resume(), and countStackFrames()
- switch statements, The switch Statement-The switch Statement
- synchronized keyword, The synchronized Statement, Exclusion and Protecting State-Exclusion and Protecting State
- synchronized methods, Method Modifiers, Working with Threads
- synchronized statements, The synchronized Statement
- syntax, Java, Java Syntax from the Ground Up-Summary
- arrays, Arrays-Multidimensional Arrays
- case sensitivity, Case Sensitivity and Whitespace
- classes and objects, Introduction to Classes and Objects-Lambda Expressions
- comments, Comments
- defining and running Java programs, Defining and Running Java Programs
- defining/running Java programs, Defining and Running Java Programs
- expressions and operators, Expressions and Operators-Special Operators
- field declaration syntax, Field Declaration Syntax
- identifiers, Identifiers
- Java file structure, Java Source File Structure
- Java source file structure, Java Source File Structure
- lambda expressions, Lambda Expressions
- lexical structure of Java program, Lexical Structure-Punctuation
- literals, Literals
- methods, Methods-Variable-Length Argument Lists
- operators, Expressions and Operators-Special Operators
- overview of Java program, Java Programs from the Top Down
- packages, Packages and the Java Namespace-Static member imports and overloaded methods
- packages and the Java namespace, Packages and the Java Namespace-Static member imports and overloaded methods
- primitive data types, Primitive Data Types-Primitive Type Conversions
- primitive type conversions, Primitive Type Conversions
- punctuation, Punctuation
- reference types, Reference Types-Boxing and Unboxing Conversions
- reserved words, Reserved Words
- statements, Statements-Enabling assertions
- Unicode character set, The Unicode Character Set
- whitespace, Case Sensitivity and Whitespace
- system (application) classloader, Application classloader
- system classes, Conventions for Portable Programs
- System.arraycopy(), Copying arrays
- System.exit(), finally
- System.getenv(), Conventions for Portable Programs
- System.in, Streams
- System.out, Streams
- System.out.printf(), Variable-Length Argument Lists
- System.out.println(), Defining Methods, Importing Static Members, A word about System.out.println(), toString()
T
- \t (tab), The char Type
- tags
- TCP, TCP-TCP
- TemporalQuery interface, Queries
- tenuring threshold, Evacuation
- test expressions (for loops), The for Statement
- text, Text-Regular Expressions
- this keyword, How the this Reference Works, Invoking One Constructor from Another
- this(), Field Defaults and Initializers
- thread-local allocation buffer, Evacuation
- Thread.sleep(), Thread Lifecycle
- Thread.State, Thread Lifecycle
- threads, Java’s Support for Concurrency
- throw statements, The throw Statement, finally
- Throwable class, catch, Exceptions and Exception Handling
- Throwable objects, Checked and Unchecked Exceptions
- throws clause (method signature), Defining Methods, Working with checked exceptions
- @throws doc-comment tag, Doc-Comment Tags
- timestamp, The parts of a timestamp
- tools, command-line, Command-Line Tools
- top-level types, Nested Types
- toString(), String Concatenation Operator, toString(), toString()
- TRACE method (HTTP), HTTP
- traits, default methods and, Can Default Methods Be Used as Traits?
- transient modifier, Field Declaration Syntax
- transitive closure, Introducing Mark-and-Sweep, Preparation and Resolution
- TreeMap class, The Map Interface
- TreeSet class, The Set Interface
- Truffle, The Future of Nashorn and GraalVM
- try block, The try/catch/finally Statement
- try clause, try
- try-with-resources (TWR) statements, The try-with-resources Statement, try-with-resources Revisited
- try/catch/finally statement, The try/catch/finally Statement-finally
- try/catch/throw statement, Multiple catch clauses
- two's complement, How Java Represents Integer Types
- type conversion or casting operator (( )), Special Operators
- type erasure, Type Erasure
- type inference, Lambda Expressions
- type literals, Type literals
- type parameter, Generic Types and Type Parameters, Bounded Type Parameters-Bounded Type Parameters
- type safety, Safe Java Programming
- type system, The Java Type System-Summary
- type variance, Bounded wildcards
- types, Generic Types and Type Parameters
U
- umbrella module, Modularizing the JDK
- unary operators, Operand number and type
- unbound method reference, Method References
- unboxing conversions, Boxing and Unboxing Conversions
- unchecked exceptions, Checked and Unchecked Exceptions, Multiple catch clauses
- underflow, integer arithmetic and, Integer Types
- Unicode character set, The Unicode Character Set, The char Type
- unknown type, Wildcards
- (see also wildcard types)
- update expressions (for loops), The for Statement
- URL class, Working with checked exceptions
- URLClassLoader, loadClass(), Applied Classloading
- user thread, setDaemon()
- UTF-8 identifier, Literals
V
- @value doc-comment tag, Inline Doc-Comment Tags
- var (local variable type inference), Non-Denotable Types and var
- varargs (variable-length argument) methods, Variable-Length Argument Lists
- variable declaration statement, Local Variable Declaration Statements
- variables
- verification (classloading phase), Verification
- @version doc-comment tag, Doc-Comment Tags
- versioning, as JPMS deficiency, Lack of Versioning
- virtual method lookup, Virtual method lookup
- visibility
- VisualGC, VisualVM
- VisualVM, VisualVM-VisualVM
- void keyword, The return Statement, Defining Methods, Problems with Reflection
- volatile keyword, Field Declaration Syntax, volatile
W
- wait(), Working with Threads
- watch services, Watch Services and Directory Searching
- weak generational hypothesis (WGH), How the JVM Optimizes Garbage Collection
- while statements, The while Statement
- whitespace, Case Sensitivity and Whitespace
- widening conversions, Primitive Type Conversions, Primitive Type Conversions
- wildcard types, Wildcards, Bounded wildcards
- working set, How the JVM Optimizes Garbage Collection
- wrapper classes, Boxing and Unboxing Conversions
- wrapper collections, Utility Methods
- write once, run anywhere (WORA), What Is the JVM?
- writer class, Readers and Writers