Автоматическое преобразование типов в Java
При присваивании типа данных переменной другого типа автоматическое преобразования типа выполняется в случае удовлетворения следующих двух условий:
- оба типы совместимы;
- длина целевого типа больше длины исходного типа.
При соблюдении этих двух условий выполняется преобразование с расширением. Например, тип int всегда достаточно велик, чтобы хранить все допустимые значения типа byte, поэтому никакие операторы явного приведения типа не требуются. С точки зрения преобразования с расширением числовые типы, среди которых целочисленный и с плавающей точкой, совместимы друг с другом. Однако не существует автоматических преобразований числовых типов в char или boolean. Типы char и boolean также не совместимы и между собой.
Как уже говорилось ранее, Java выполняет автоматическое преобразование типов при сохранении целочисленной константы в переменных типа byte, short, long или char.