...
Java provides 22 possible narrowing primitive conversions. According to The Java Language Languagee Specification (JLS), §5.1.3, "Narrowing Primitive Conversions" [JLS 20052015]:
short
tobyte
orchar
char
tobyte
orshort
int
tobyte
,short
, orchar
long
tobyte
,short
,char
, orint
float
tobyte
,short
,char
,int
, orlong
double
tobyte
,short
,char
,int
,long
, orfloat
...
Integer type ranges are defined by the JLS, §4.2.1, "Integral Types and Values" [JLS 20052015], and are also described in NUM00-J. Detect or prevent integer overflow.
...
Bibliography
...