Основы программирования с Java - стр. 29
Например, вы можете иметь что-то вроде, а = а + 1;
Это не корректно в качестве математического выражения, но это верное утверждение присваивания.
Переменная здесь имеет начальное значение 1, и ее значение будет изменено на 2 после присвоения.
Для определенного типа существует набор действительных операторов, которые могут быть применены к этому типу.
Если кто-то хочет применить некоторый оператор, который действителен только для другого типа, необходимо преобразование типов, чтобы преобразовать тип данных из одного типа в другой.
Преобразование типа может быть сделано двумя способами: это явные и неявные преобразования.
Неявное преобразование изменяет значение одного типа в другой без специальной инструкции от программиста.
Например, целый тип int разрешено присваивать типу float, хотя при этом может быть потеряна точность.
Основное правило заключается в том, что неявное преобразование разрешено, если диапазон значений первого типа является подмножеством второго.
Его часто называют расширяющим преобразованием.
Обратное это сужающее преобразование, которое, как правило, не допускается без явного преобразования.
Явное преобразование выполняется приведением типов.
Приведение типов делается путем размещения имени целевого типа в скобках перед типом данных, которые будут преобразованы.
Например, если dValue является double переменной, компилятор не допустит присвоения int или float без преобразования явного типа, указав int или float в скобках.
Далее, мы вернемся к примеру CourseGrade и используем то, что мы только что узнали о переменных, объявлениях, типах данных и арифметических выражениях, чтобы получить более глубокое понимание того, как эта программа выполняется.
Выделение памяти
Давайте теперь используем пример СourseGrade для того, чтобы проиллюстрировать эффект объявления и выполнения программы.
Как уже говорилось, объявление идентификатора, в дополнение к определению его типа данных, также позволяет компьютеру делать выделение памяти, когда программа выполняется.
В этой программе, объявляются 7 идентификаторов, а именно examweight, labWeight, hwWeight, examScore, labScore, hwScore и finalGrade.
Я буду использовать схему, которая показывает набор из ячеек, чтобы проиллюстрировать выделение памяти, когда переменная объявлена.
Это только для иллюстрации и объем памяти, конечно отличается от ячейки.
Если объявление int examWeight сделано, пространство памяти выделяется в соответствии с размером типа данных, в данном случае int.
Присвоение значения 70 для examWeight приведет к инициализации значения, хранимого в памяти, до 70. В компьютере, значение 70 на самом деле представлено как строка битов 0 и 1.