## Uses of Class
java.util.ServiceLoader

- Packages that use ServiceLoader
  Package | Description
  --- | ---
  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.
  javax.tools | Provides interfaces for tools which can be invoked from a program, for example, compilers.

- - ### Uses of ServiceLoader in java.util

    Methods in java.util that return ServiceLoader
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <S> ServiceLoader<S>` | ServiceLoader.`load​(Class<S> service)` | Creates a new service loader for the given service type, using the current thread's context class loader.
    `static <S> ServiceLoader<S>` | ServiceLoader.`load​(Class<S> service, ClassLoader loader)` | Creates a new service loader for the given service.
    `static <S> ServiceLoader<S>` | ServiceLoader.`load​(ModuleLayer layer, Class<S> service)` | Creates a new service loader for the given service type to load service providers from modules in the given module layer and its ancestors.
    `static <S> ServiceLoader<S>` | ServiceLoader.`loadInstalled​(Class<S> service)` | Creates a new service loader for the given service type, using the platform class loader.

  - ### Uses of ServiceLoader in javax.tools

    Methods in javax.tools that return ServiceLoader
    Modifier and Type | Method | Description
    --- | --- | ---
    `<S> ServiceLoader<S>` | ForwardingJavaFileManager.`getServiceLoader​(JavaFileManager.Location location, Class<S> service)` |
    `default <S> ServiceLoader<S>` | JavaFileManager.`getServiceLoader​(JavaFileManager.Location location, Class<S> service)` | Get a service loader for a specific service class from a given location.