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

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
Зарегистрируйся сейчас
или Подпишись на будущие тесты