There are mainly 2 types of casting in Java programming language. These are casting between primitive numeric types and casting between object references. The Casting between numeric types mostly used to convert larger values, such as double values, to smaller values, such as byte values. Casting between object references is used to refer to an object by a compatible class, interface, or array type reference.
For more details read this article link: