Member 11735960 Ответов: 1

В чем разница между приведением типа и конечной переменной в java?


Меня этому учили:

байт-&ГТ;короткого&ГТ;внутреннее-&ГТ;давно&ГТ;плавающая&ГТ;двойной
Чара-&ГТ;внутреннее-&ГТ;давно&ГТ;плавающая&ГТ;двойной

класс HelloA{
public static void main(String args[]){
final int a=5; / / переменная более высокого типа данных
байт b=a; / / переменной нижнего типа данных присваивается значение более высокого типа данных
переменная
Системы.из.код println(б);
}
}

Выход: 5

класс Привет{
public static void main(String args[]){
конечный байт b=65;
типа char с=б; //это нарушает байт-&ГТ;короткого&ГТ;инт
Системы.из.код println(с);
}
}

Результат:

класс Привет{
public static void main(String args[]){
конечный символ c= 'A';
byte b=c; / / это нарушает char - > int
Системы.из.код println(б);
}
}

Выход: 65

Может ли кто-нибудь объяснить подробнее?

Что я уже пробовал:

Я пробовал вышеперечисленные программы.

1 Ответов

Рейтинг:
2

Richard MacCutchan

Это не специфично для Java, это то, как компьютеры хранят значения и как программы интерпретируют их.

Характер A это 65-й символ в таблице сортировки ASCII. Поэтому, если вы копируете (или ссылаетесь) символьную переменную в байт, компилятор обрабатывает значение байта как число, которое равно 65. И наоборот если вы скопируете число 65 в символьную переменную, компилятор будет рассматривать его как символ, который в данном случае является A. Google для "ASCII collate sequence", и вы увидите числовые значения всех символов.