Для обоих примитивных операндов (int
, double
) и операндов класса оболочки (Integer
, Double
) будет применяться двоичное число c.
bnp(int,double)
bnp(Integer,Double)
JLS-15.25
Это означает, что, во-первых, для второго сценария происходит преобразование распаковки.
Integer -> int
Double -> double
Затем для обоих происходит расширяющееся примитивное преобразование, приводящее к a double
double
int -> double
double = expression ? double : double
JLS-5.6.2
, который может быть преобразован в дальнейшем в зависимости от переменной, которой вы присваиваете результат.