 
                            ...
Java provides 22 possible narrowing primitive conversions. According to The Java Language Languagee Specification (JLS), §5.1.3, "Narrowing Primitive Conversions" [JLS 20052015]:
- shortto- byteor- char
- charto- byteor- short
- intto- byte,- short, or- char
- longto- byte,- short,- char, or- int
- floatto- byte,- short,- char,- int, or- long
- doubleto- byte,- short,- char,- int,- long, or- float
...
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
...