# Module java.base

module java.base
Defines the foundational APIs of the Java SE Platform.

Providers:
  The JDK implementation of this module provides an implementation of the jrt file system provider to enumerate and read the class and resource files in a run-time image. The jrt file system can be created by calling `FileSystems.newFileSystem(URI.create("jrt:/"))`.

Module Graph:
Tool Guides:
  java launcher, keytool
Since:
  9

- ## Packages

  Exports
  Package
  Description
  java.io
  Provides for system input and output through data streams, serialization and the file system.
  java.lang
  Provides classes that are fundamental to the design of the Java programming language.
  java.lang.annotation
  Provides library support for the Java programming language annotation facility.
  java.lang.constant
  Classes and interfaces to represent nominal descriptors for run-time entities such as classes or method handles, and classfile entities such as constant pool entries or `invokedynamic` call sites.
  java.lang.foreign
  Provides low-level access to memory and functions outside the Java runtime.
  java.lang.invoke
  The `java.lang.invoke` package provides low-level primitives for interacting with the Java Virtual Machine.
  java.lang.module
  Classes to support module descriptors and creating configurations of modules by means of resolution and service binding.
  java.lang.ref
  Provides reference-object classes, which support a limited degree of interaction with the garbage collector.
  java.lang.reflect
  Provides classes and interfaces for obtaining reflective information about classes and objects.
  java.lang.runtime
  The `java.lang.runtime` package provides low-level runtime support for the Java language.
  java.math
  Provides classes for performing arbitrary-precision integer arithmetic (`BigInteger`) and arbitrary-precision decimal arithmetic (`BigDecimal`).
  java.net
  Provides the classes for implementing networking applications.
  java.net.spi
  Service-provider classes for the `java.net` package.
  java.nio
  Defines buffers, which are containers for data, and provides an overview of the other NIO packages.
  java.nio.channels
  Defines channels, which represent connections to entities that are capable of performing I/O operations, such as files and sockets; defines selectors, for multiplexed, non-blocking I/O operations.
  java.nio.channels.spi
  Service-provider classes for the `java.nio.channels` package.
  java.nio.charset
  Defines charsets, decoders, and encoders, for translating between bytes and Unicode characters.
  java.nio.charset.spi
  Service-provider classes for the `java.nio.charset` package.
  java.nio.file
  Defines interfaces and classes for the Java virtual machine to access files, file attributes, and file systems.
  java.nio.file.attribute
  Interfaces and classes providing access to file and file system attributes.
  java.nio.file.spi
  Service-provider classes for the `java.nio.file` package.
  java.security
  Provides the classes and interfaces for the security framework.
  java.security.cert
  Provides classes and interfaces for parsing and managing certificates, certificate revocation lists (CRLs), and certification paths.
  java.security.interfaces
  Provides interfaces for generating RSA (Rivest, Shamir and Adleman AsymmetricCipher algorithm) keys as defined in the RSA Laboratory Technical Note PKCS#1, and DSA (Digital Signature Algorithm) keys as defined in NIST's FIPS-186.
  java.security.spec
  Provides classes and interfaces for key specifications and algorithm parameter specifications.
  java.text
  Provides classes and interfaces for handling text, dates, numbers, and messages in a manner independent of natural languages.
  java.text.spi
  Service provider classes for the classes in the java.text package.
  java.time
  The main API for dates, times, instants, and durations.
  java.time.chrono
  Generic API for calendar systems other than the default ISO.
  java.time.format
  Provides classes to print and parse dates and times.
  java.time.temporal
  Access to date and time using fields and units, and date time adjusters.
  java.time.zone
  Support for time-zones and their rules.
  java.util
  Contains the collections framework, some internationalization support classes, a service loader, properties, random number generation, string parsing and scanning classes, base64 encoding and decoding, a bit array, and several miscellaneous utility classes.
  java.util.concurrent
  Utility classes commonly useful in concurrent programming.
  java.util.concurrent.atomic
  A small toolkit of classes that support lock-free thread-safe programming on single variables.
  java.util.concurrent.locks
  Interfaces and classes providing a framework for locking and waiting for conditions that is distinct from built-in synchronization and monitors.
  java.util.function
  Functional interfaces provide target types for lambda expressions and method references.
  java.util.jar
  Provides classes for reading and writing the JAR (Java ARchive) file format, which is based on the standard ZIP file format with an optional manifest file.
  java.util.random
  This package contains classes and interfaces that support a generic API for random number generation.
  java.util.regex
  Classes for matching character sequences against patterns specified by regular expressions.
  java.util.spi
  Service provider classes for the classes in the java.util package.
  java.util.stream
  Classes to support functional-style operations on streams of elements, such as map-reduce transformations on collections.
  java.util.zip
  Provides classes for reading and writing the standard ZIP and GZIP file formats.
  javax.crypto
  Provides the classes and interfaces for cryptographic operations.
  javax.crypto.interfaces
  Provides interfaces for Diffie-Hellman keys as defined in RSA Laboratories' PKCS #3.
  javax.crypto.spec
  Provides classes and interfaces for key specifications and algorithm parameter specifications.
  javax.net
  Provides classes for networking applications.
  javax.net.ssl
  Provides classes for the secure socket package.
  javax.security.auth
  This package provides a framework for authentication and authorization.
  javax.security.auth.callback
  This package provides the classes necessary for services to interact with applications in order to retrieve information (authentication data including usernames or passwords, for example) or to display information (error and warning messages, for example).
  javax.security.auth.login
  This package provides a pluggable authentication framework.
  javax.security.auth.spi
  This package provides the interface to be used for implementing pluggable authentication modules.
  javax.security.auth.x500
  This package contains the classes that should be used to store X500 Principal and X500 Private Credentials in a Subject.
  javax.security.cert
  Provides classes for public key certificates.

- ## Services

  Provides
  Type
  Description
  FileSystemProvider
  Service-provider class for file systems.
  Uses
  Type
  Description
  AbstractChronology
  An abstract implementation of a calendar system, used to organize and identify dates.
  AsynchronousChannelProvider
  Service-provider class for asynchronous channels.
  BreakIteratorProvider
  An abstract class for service providers that provide concrete implementations of the `BreakIterator` class.
  CalendarDataProvider
  An abstract class for service providers that provide locale-dependent `Calendar` parameters.
  CalendarNameProvider
  An abstract class for service providers that provide localized string representations (display names) of `Calendar` field values.
  CharsetProvider
  Charset service-provider class.
  Chronology
  A calendar system, used to organize and identify dates.
  CollatorProvider
  An abstract class for service providers that provide concrete implementations of the `Collator` class.
  ContentHandlerFactory
  This interface defines a factory for content handlers.
  CurrencyNameProvider
  An abstract class for service providers that provide localized currency symbols and display names for the `Currency` class.
  DateFormatProvider
  An abstract class for service providers that provide concrete implementations of the `DateFormat` class.
  DateFormatSymbolsProvider
  An abstract class for service providers that provide instances of the `DateFormatSymbols` class.
  DecimalFormatSymbolsProvider
  An abstract class for service providers that provide instances of the `DecimalFormatSymbols` class.
  FileSystemProvider
  Service-provider class for file systems.
  FileTypeDetector
  A file type detector for probing a file to guess its file type.
  LocaleNameProvider
  An abstract class for service providers that provide localized names for the `Locale` class.
  LoginModule
  Service-provider interface for authentication technology providers.
  NumberFormatProvider
  An abstract class for service providers that provide concrete implementations of the `NumberFormat` class.
  Provider
  This class represents a "provider" for the Java Security API, where a provider implements some or all parts of Java Security.
  ResourceBundleControlProvider
  An interface for service providers that provide implementations of `ResourceBundle.Control`.
  ResourceBundleProvider
  `ResourceBundleProvider` is a service provider interface for resource bundles.
  SelectorProvider
  Service-provider class for selectors and selectable channels.
  System.LoggerFinder
  The `LoggerFinder` service is responsible for creating, managing, and configuring loggers to the underlying framework it uses.
  TimeZoneNameProvider
  An abstract class for service providers that provide localized time zone names for the `TimeZone` class.
  ToolProvider
  An interface for command-line tools to provide a way to be invoked without necessarily starting a new VM.
  URLStreamHandlerProvider
  URL stream handler service-provider class.
  ZoneRulesProvider
  Provider of time-zone rules to the system.