Table of Contents
- Title and Copyright Information
- Preface
- 1 Java Core Libraries
- 2 Serialization Filtering
- 3 Enhanced Deprecation
- 4 XML Catalog API
- 5 Java Collections Framework
- 6 Process API
- 7 Preferences API
- 8 Java Logging Overview
- 9 Java NIO
-
10
Java Networking
-
Networking System
Properties
- HTTP Client Properties
- HTTP Server Properties
- IPv4 and IPv6 Protocol Properties
- HTTP Proxy Properties
- HTTPS Proxy Properties
- FTP Proxy Properties
- SOCKS Proxy Properties
- Other Proxy-Related Properties
- UNIX Domain Sockets Properties
- Other HTTP URL Stream Protocol Handler Properties
- Specify Mappings from Host Names to IP Addresses
- Address Cache Properties
- Enhanced Exception Messages
-
Networking System
Properties
- 11 Pseudorandom Number Generators
-
12
Foreign Function and Memory
API
- On-Heap and Off-Heap Memory
- Memory Segments and Arenas
- Calling a C Library Function with the Foreign Function and Memory API
-
Upcalls: Passing Java Code as a
Function Pointer to a Foreign Function
- Defining the Java Method That Compares Two Elements
- Creating a Downcall Method Handle for the qsort Function
- Creating a Method Handle to Represent the Comparison Method qsortCompare
- Creating a Function Pointer from the Method Handle compareHandle
- Allocating Off-Heap Memory to Store the int Array
- Calling the qsort Function
- Copying the Sorted Array Values from Off-Heap to On-Heap Memory
- Foreign Functions That Return Pointers
- Memory Layouts and Structured Access
- Checking for Native Errors Using errno
- Slicing Allocators and Slicing Memory Segments
- Restricted Methods
- Calling Native Functions with jextract
- 13 Scoped Values
-
14
Concurrency
-
Virtual Threads
- What is a Platform Thread?
- What is a Virtual Thread?
- Why Use Virtual Threads?
- Creating and Running a Virtual Thread
- Scheduling Virtual Threads and Pinned Virtual Threads
- Debugging Virtual Threads
-
Virtual Threads: An Adoption
Guide
- Write Simple, Synchronous Code Employing Blocking I/O APIs in the Thread-Per-Request Style
- Represent Every Concurrent Task as a Virtual Thread; Never Pool Virtual Threads
- Use Semaphores to Limit Concurrency
- Don't Cache Expensive Reusable Objects in Thread-Local Variables
- Avoid Lengthy and Frequent Pinning
- Structured Concurrency
- Thread-Local Variables
-
Virtual Threads