Classes, interfaces, constructors, members, and serialized forms are collectively known as API elements.
A class whose implementation uses an API is a client of the API. An exported API consists of the API elements that are accessible outside of the package that defines the API.
A class library (a set of packages and method) suitable for use in your own applications is known as the “Application Programming Interface”, or “API” for short.
In general, it is good API design practice not to make users pay for a feature they don't use.
An example would be a package of PDF processing methods that you want use to read PDF data (Tika for instance). A third party has written classes to implement an interface, which it makes public. You will invokes the public PDF methods using the signatures and return types defined in the interface.
While the PDF API is made public (to its user), the implementation of the API is unknown and may be revised at a later date as long as it continues to implement the original interface that the users have relied on.
APIs are then common in commercial software products. Typically, a company sells a software package that contains complex methods that another company wants to use in its own software product.
The Java platform provides an enormous API. Its packages represent the tasks most commonly associated with general-purpose programming.
For example:
There are literally thousands of classes to choose from. This allows you, the programmer, to focus on the design of your particular application, rather than the infrastructure required to make it work.
As a programmer, The Java Platform API Specification will become your single most important piece of reference documentation. contains the complete listing for all packages, interfaces, classes, fields, and methods supplied by the Java Platform 6, Standard Edition
@API(since = "1.22", status = API.Status.EXPERIMENTAL)
public interface Closeable extends AutoCloseable {
// override, removing "throws"
@Override void close();
}