Каким будет результат компиляции и выполнения данного кода:

public class ByteTest {
    public static void main(String[] s) {
        byte b = 8;
         m(b);
         m(7);
    }

    static void m(byte b) {
        System.out.print("byte");
    }
}
Explanation
Если в команде присваивания используется константное выражение со значением типа int, попадающим в диапазон byte, то компилятор автоматически сужает его тип. Поэтому команда byte b = 8; компилируется без ошибок.
В других ситуациях, например, в вызове метода, такого не происходит. Поэтому на команде m(7); генерируется ошибка компиляции.

Слідкуй за CodeGalaxy

Мобільний додаток Beta

Get it on Google Play
Зворотній Зв’язок
Продовжуйте вивчати
тести з Java
Cosmo
Зареєструйся Зараз
або Підпишись на майбутні тести