В Java может быть часто встречается преобразование типа, от определения переменных до копирования, расчета численных переменных до переноса параметров методов, моделирования между базовыми классами и полученными классами и т. Д. Преобразование типа можно увидеть повсюду. Преобразование типа в Java играет важную роль в кодировании Java.
Есть много вопросов, на которые можно обратить внимание при определении переменных. Если вы не будете осторожны, вы потеряете точность или несовместимые типы.
Например:
1. При определении длинных целочисленных данных необходимо добавить суффикс L или L.
Long L = 123456789012345L
2. При определении одного типа точности (7-8-битная значительная цифра), суффикс F или F должен быть добавлен.
float f = 12,5f
3. Логический тип не может быть преобразован в другие типы данных.
Среди них мы часто сталкиваемся с проблемами конверсии типа данных. Наиболее распространенными являются неявное преобразование и преобразование листа. Давайте проанализируем это.
Неявное преобразование
особенность:
От небольшого до большого, его можно неявно преобразовать, а тип данных будет автоматически улучшен.
байт, короткий, char -> int -> long -> Float -> Double
ПРИМЕЧАНИЕ: Лонг - 8 байтов, а поплавок - 4 байта.
Long - это целое число, плавание - это тип плавающей запятой. Правила хранения целых чисел и номеров плавания различны. Помните, что диапазон длиной меньше, чем поплавок.
пример:
байт a = 10;
int b = a;
Когда intb = a скомпилируется, A неявно преобразуется в тип Int.
Случаи
особенность:
От большого до малого (если вы четко знаете, что данные могут быть представлены этим типом данных, вы можете использовать литье)
Формат:
(Преобразованный тип данных) переменная или значение.
Примечание: в целом кастинг не рекомендуется вообще.
Пример 1:
int a = 10; байт b = (байт) a;
Когда байт B = (байт) a составлен, A отбрасывается в тип байта.
Пример 2:
класс Qiangzhidemo {public static void main (string [] args) {byte b = (byte) 130; System.out.println (b); // print result-126}}Анализ:
Данные 130 по умолчанию в Десятичные данные типа INT,
Шаг 1: преобразовать десятичное значение 130 в бинарные данные.
10000010
Шаг 2: представление 130 в памяти следующее
Оригинальный код: 000000000000000000000 00000000 10000010
Шаг 3: Найдите код комплемента Int130
Поскольку 130 является положительным числом, обратный код и код дополнения соответствуют исходному коду.
Код дополнения: 00000000000000000000000 00000000 100000010
Шаг 4: Перехватите код дополнения, оставляя только последние 8 цифр.
(байт) Код комплемента 130: 10000010
Шаг 5: Преобразовать этот дополнение в исходный код.
Поскольку бит знака (первый бит) составляет 1, число является отрицательным числом.
Обратный код: 10000001 (комплемент код-1)
Оригинальный код: 111111110 (бит символа остается неизменным, бит данных инвертирован)
Преобразовать в десятичное в -126, так что, наконец, печатайте -126.
Пример 3:
шорты = 1; s = s +1;
и
шорты = 1; s+= 1;
Есть ли проблемы? Почему?
Анализ:
Первая программа сообщит об ошибке: Ошибка: Несовместимый тип: могут быть потери при преобразовании из int в короткий
Причина: S = S+1; S+1 будет неявно преобразован в тип Int. Когда тип int назначается короткому типу, он может быть потерян.
Вторая программа может быть скомпилирована и запускается.
Причина: S+= 1, хотя его можно рассматривать как S = S+1, все еще существует разница. В s+= 1 есть лист, то есть S = (короткий) (S+1), который заставит значение S+1 к короткому типу, поэтому ошибки не будет.
краткое содержание:
Если проблема преобразования типа данных возникает в некоторых мини -программах, мы можем увидеть с первого взгляда. Тем не менее, при написании огромной системы и наличием огромного количества данных эти небольшие проблемы могут вызывать системные ошибки или даже сбои, поэтому мы должны понять строгость раннего написания кода.
Приведенный выше контент представляет базовое неявное преобразование Java по сравнению с преобразованием актеров, я надеюсь, что вам понравится.