Я столкнулся с этим вопросом в техническом тесте для работы. Учитывая следующий пример кода:
public class Manager {
public static void main (String args[]) {
System.out.println((int) (char) (byte) -2);
}
}
Он выводит результат как 65534.
Это поведение отображается только для отрицательных значений; 0 и положительные числа дают одно и то же значение, то есть значение, введенное в SOP. Байт, приведенный здесь, незначителен; Я пробовал без него.
Итак, мой вопрос: что именно здесь происходит?