Осмотрим должно выражение:
byte a = 30;
byte b = 40;
byte c = 50;
int d = a * b / c;
Итак, мы лицезреем что при умножении членов a на b , значение выходит за спектры возможных значений оператора разновидности byte. Для вывода схожих тем , java автоматом увеличивает тип каждого оператора.
к примеру, из byte в short , из short в int, из char в int , и т д.
Да, автоматическое увеличение разновидностей очень комфортная вещь, но грызть и минусы.
К примеру последующий код приводиться к ошибке, так как происходит попытка сохранения творения 50*2 для идеально недопустимого значения разновидности byte:
byte b =50;
b = b * 2;
Наиболее понятнее будет на практике. потому что наиболее лояльно я расписать не могу, кризис настроения что ли:)
Сейчас жажду разглядеть верховодила роста разновидности.
В Java есть некоторое количество управлял роста разновидности, тот или иной надо уяснить:
Тип целых значений - byte , short и char - увеличиваются до int.
Ежели оператор располагает тип long , то и повыситься выражение до long.
И в конце концов, ежели оператор располагает тип double , то он и остается double.
Перед програмкой, что бы не имелось не поняток, жажду добавить информацию про литерал float:
По умолчанию фактический численный литерал в правой доли оператора направления обрабатывается как тип double. Следовательно, для инициализации переменной разновидности с плавающей запятой необходимо применять суффикс f либо F, как представлено в надлежащем образце:
float x = 3.5F;
Ежели в прошлом объявлении не применять суффикс, то будет выдана ошибка компиляции, так как это приведет к попытке сохранить значение разновидности double в переменной разновидности float.
Осмотрим програмку, тот или другой показывает увеличение разновидности 1-го оператора к иному:
public class privedenie {
public static void main(String agrs[]) {
byte b = сто;
char c = 'а';
short s = 5789;
int i = 1000000;
float f = 5.67f;
double d = .4853;
double result = (f * b) + (i / c) - (d * s);
System.out.println("result =" + result);
}
}
В этом образце переменные увеличиваются до определенных разновидностей, к примеру переменная b , увеличивается до float.
Рекомендую демонтировать и поиграть со значениями на предоставленном образце, а тем кому светло, можнож перебегать к должно уроку java -.