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

import java.io.*;
public class QTest {
	public static void main(String[] args) throws IOException {
		byte[] bytes = new byte[] { -1, 1, 0x0 };
		InputStream in = new ByteArrayInputStream(bytes);
		System.out.println(in.read() + in.read() + in.read());
	}
}
Explanation
Метод read() считывает 1 байт из массива bytes, переданного в конструктор ByteArrayInputStream, однако считанное значение возвращается как int. byte в Java представляется как восьмиразрядное число, а int - как 32 разрядное, поэтому преобразование из byte в int происходит добавлением к 8 разрядам байта 24 незначащих нулей. Байт равный -1 представляется как 11111111, после расширения до int в десятичной системе он будет проинтерпретирован как 255. Поэтому в данном примере будет выведено 256 (255 + 1 + 0).

Следи за CodeGalaxy

Мобильное приложение Beta

Get it on Google Play
Обратная Связь
Продолжайте изучать
тесты по Java
Cosmo
Зарегистрируйся сейчас
или Подпишись на будущие тесты