## Uses of Class
java.lang.invoke.CallSite

Packages that use CallSite
java.lang.invoke: The `java.lang.invoke` package provides low-level primitives for interacting with the Java Virtual Machine.
jdk.dynalink.support: Contains classes that make using Dynalink more convenient by providing basic implementations of some classes as well as various utilities.

### Uses of CallSite in java.lang.invoke

Subclasses of CallSite in java.lang.invoke
`class` `ConstantCallSite` A `ConstantCallSite` is a `CallSite` whose target is permanent, and can never be changed.
`class` `MutableCallSite` A `MutableCallSite` is a `CallSite` whose target variable behaves like an ordinary field.
`class` `VolatileCallSite` A `VolatileCallSite` is a `CallSite` whose target acts like a volatile variable.

Methods in java.lang.invoke that return CallSite
`static CallSite` LambdaMetafactory.`altMetafactory​(MethodHandles.Lookup caller, String invokedName, MethodType invokedType, Object... args)` Facilitates the creation of simple "function objects" that implement one or more interfaces by delegation to a provided `MethodHandle`, after appropriate type adaptation and partial evaluation of arguments.
`static CallSite` StringConcatFactory.`makeConcat​(MethodHandles.Lookup lookup, String name, MethodType concatType)` Facilitates the creation of optimized String concatenation methods, that can be used to efficiently concatenate a known number of arguments of known types, possibly after type adaptation and partial evaluation of arguments.
`static CallSite` StringConcatFactory.`makeConcatWithConstants​(MethodHandles.Lookup lookup, String name, MethodType concatType, String recipe, Object... constants)` Facilitates the creation of optimized String concatenation methods, that can be used to efficiently concatenate a known number of arguments of known types, possibly after type adaptation and partial evaluation of arguments.

`static CallSite`

LambdaMetafactory.`metafactory​(MethodHandles.Lookup caller, String invokedName, MethodType invokedType, MethodType samMethodType, MethodHandle implMethod, MethodType instantiatedMethodType)`

Facilitates the creation of simple "function objects" that implement one or more interfaces by delegation to a provided `MethodHandle`, after appropriate type adaptation and partial evaluation of arguments.

### Uses of CallSite in jdk.dynalink.support

Subclasses of CallSite in jdk.dynalink.support
`class` `AbstractRelinkableCallSite` A basic implementation of the `RelinkableCallSite` as a `MutableCallSite`.
`class` `ChainedCallSite` A relinkable call site that implements a polymorphic inline caching strategy.
`class` `SimpleRelinkableCallSite` A relinkable call site that implements monomorphic inline caching strategy, only being linked to a single `GuardedInvocation` at any given time.