В Java, int
представлен 1
, а double
представлен 1.0
.
Следовательно, когда вы вызываете method1(1, 1)
, он вызывает метод с аргументами int.
Для Java компилятора это не является неоднозначным.
Вкратце, ниже приведены вызовы, которые произойдут при передаче этих типов значений.
method1(1, 1)
-> int, int
method1(1.0, 1)
-> double, double (компилятор с автоматическим приведением 1 к double)
method1(1.0, 1.0)
-> double, double