Java Language Specification, Version Java SE 21 Edition
5.1. Kinds of Conversion5 Documented Misconceptions
NoCastIfSameSize
If a variable is at least as big (bit-width) as a value, then no cast is needed to a assign the value to the variable
NoImplicitWidening
Smaller types are never automatically converted into bigger ones without an explicit cast
NumericToBooleanCoercion
Numeric types can be coerced to boolean
ReferenceToBooleanCoercion
Every reference type can be coerced to boolean
ReferenceToIntegerConversion
One can cast between references and ints