Вопрос №736 от пользователя Михаил Соколовский в уроке «Модуль 6. Урок 3. Преобразование строк в числа и обратно.», курс «Введение в Java»

Михаил Соколовский

По данному заданию у меня два вопроса

public class ValueDemo {
    public static void main(String[] args){ 
        String s = "";
        if(011 == 9) s += 4;
        if(0x11 == 17) s += 5;
        Integer I = 12345;
        if(I.intValue() == Integer.valueOf("12345")) s += 6;
        System.out.println(s);

    }
}

1) откуда Java знает, что 011 это запись 9 в восьмеричной системе счисления (аналогично с 17)?

2) каким образом выполняется последнее условие (I.intValue() == Integer.valueOf("12345")), если слева - это примитив типа int, а справа - объект типа Integer?

1 2

Глеб Бочкарёв

  1. Восьмеричная и шестнадцатеричная системы используются очень часто в программировании, и поэтому в языке Java предусмотрена возможность представления целочисленных констант (или литералов) в восьмеричной и шестнадцатеричной форме. Шестнадцатеричная константа должна начинаться с символов Ох (цифры 0, после которой следует буква х). А восьмеричная константа начинается с нуля.
  2. Начиная с JDK 5 в язык Java добавлены два важных средства: автоупаковка (autoboxing) и автораспаковка (autounboxing) - функция преобразования примитивных типов в объектные и наоборот. До того как происходит сравнение выполняется автораспаковка т.е. процесс преобразования объекта в соответствующий ему примитивный тип.
8

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
1 июня 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
1 июня 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
1 июня 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
1 июня 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
1 июня 5 месяцев