Расширение примитивного преобразования в Java

Опубликовано: 15 Февраля, 2022

Here is a small code snippet given. Try to Guess the output

public class Test
{
    public static void main(String[] args)
    {
        System.out.print("Y" + "O");
        System.out.print("L" + "O");
    }
}

На первый взгляд, мы ожидаем печати «YOLO».

Фактический выход:
«YO155».

Объяснение:
Когда мы используем двойные кавычки, текст обрабатывается как строка и печатается «YO», но когда мы используем одинарные кавычки, символы «L» и «O» преобразуются в int. Это называется расширяющимся примитивным преобразованием. После преобразования в целое число добавляются («L» - 76, «O» - 79) и печатается 155.

Теперь попробуйте угадать результат следующего:

Выход: YOLO

Объяснение : Теперь будет напечатано «YOLO» вместо «YO7679». Это связано с тем, что расширяющееся примитивное преобразование происходит только тогда, когда присутствует оператор типа '+', который ожидает, по крайней мере, целое число с обеих сторон.

Расширяющееся примитивное преобразование применяется для преобразования одного или обоих операндов в соответствии со следующими правилами. Результатом добавления символов, шорт или байтов Java является int :

  • Если один из операндов имеет тип double, другой преобразуется в double.
  • В противном случае, если один из операндов имеет тип float, другой преобразуется в float.
  • В противном случае, если один из операндов имеет тип long, другой преобразуется в long.
  • В противном случае оба операнда преобразуются в тип int

Ссылка: http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.6.2

Автор статьи - Анураг Рай . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью и отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .