Я учусь. Хорошо, но подождите я не простой ученик, я учусь, делая что-то. И как только я узнал об этом, я верю, что смогу поделиться этим с такими людьми, как вы. :)

Что такое приведение типов?

Проще говоря, приведение типов — это процесс преобразования одного типа данных в другой, чтобы его можно было легко хранить и обрабатывать с помощью этого требуемого идентификатора типа данных.

В java есть два способа приведения любого типа данных:

  1. Неявное приведение типов или расширяющее приведение типов (автоматически)
  2. Явное приведение типов или сужающее приведение типов (вручную)

Расширение литья-

  • Всякий раз, когда тип данных с меньшей емкостью сохраняется в типе данных с большей емкостью, автоматически происходит неявное преобразование или расширение типа.
  • Никакой потери информации при таком типе приведения.
  • Приведение типов данных от меньшего к большему.

Теперь вы, должно быть, думаете, что Long имеет размер 8 байтов, а float — 4 байта, так как 8 байтов данных могут храниться в 4 байтах пространства?
Ну, JAVA позаботится об этом, потому что это неявное преобразование типов и вам не нужно беспокоиться об этом.
давайте разберемся с этой концепцией на примере:

Предположим, что есть две комнаты R1 и R2 со 100 и 50 скамейками соответственно. В R1 один человек сидит на скамейке. Таким образом, общее количество человек, которое может вместить R1, равно 100. Теперь во второй комнате (R2) 2 человека могут сидеть на скамейке, поэтому общая вместимость этой комнаты также становится 100. Так что это о том, как все управляется.
Итак, в java все дело во внутренней организации данных и в том, как с ними работает JVM.

Давайте возьмем программу Java, чтобы понять неявное приведение типов:

И выход -

Values Before casting- Byte 97 Short 3256 Int 100 Long 1223654555 Float 10.32 Double 123.325698 Char a
Values after casting- Short 97 Int 97

Сужение трансляции

  • Всякий раз, когда тип данных большей емкости хранится в типе данных меньшей емкости, происходит явное приведение типов или сужение.
  • Потеря информации при таком приведении типов.
  • Приведение типов данных от большего к меньшему.

Зачем нам это нужно?

Предположим, что есть случай, когда нужно сохранить тип данных большего размера в типе данных меньшего размера.

   int x = 100;
   double y = 20.3;
   
   x = y;  // ERROR; Double(8 bytes)can't be assigned to int(4 byte)

Для таких ситуаций нам нужно выполнить явное приведение типов или сужение. В Java есть определенный способ выполнения сужающего приведения.

x = (int)20.3; // Explicit TypeCasting

Итак, общий синтаксис для выполнения сужающего приведения следующий:

identifier = (data-type-of-identifier-to-which-casting)Literal;

Давайте возьмем программу Java, чтобы лучше понять ее.

И выход -

20

Обратите внимание, что в приведенном выше примере20.3 было преобразовано в 20, а .3 отброшено. Это связано с тем, что x имеет тип int, поэтому он возьмет целую часть из значения double и оставит все остальное.

Возьмем еще один пример сужающего приведения:

И выход -

100
-106

Вы заметили, что когда мы приводили z (тип int) к b2 (тип byte), мы получаем неожиданный результат. И здесь сужающиеся отливки создают проблему. Это потеряет информацию, которую вы хотите разыграть. Поэтому при использовании сужающего приведения будьте осторожны с типами данных и их размерами.

Это все, что касается приведения типов в Java. Спасибо, что прочитали эту информацию. Пожалуйста, позвольте мне улучшить мое письмо и знания, предоставляя ценные отзывы. И, пожалуйста, задавайте любые сомнения или вопросы, которые у вас есть в отношении этого поста.

Спасибо!

Пожалуйста, похлопайте в ладоши, чтобы больше людей могли найти его.