Uses of Class

Packages that use Optional 
Package Description
Provides classes that are fundamental to the design of the Java programming language.
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.
The java.lang.invoke package provides low-level primitives for interacting with the Java Virtual Machine.
Classes to support module descriptors and creating configurations of modules by means of resolution and service binding.
Provides the classes for implementing networking applications.
HTTP Client and WebSocket APIs
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.
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.
Service provider classes for the classes in the java.util package.
Classes to support functional-style operations on streams of elements, such as map-reduce transformations on collections.
Provides classes for the secure socket package.