#Вопросы_с_собеседования
Каким образом из вложенного класса получить доступ к полю внешнего класса?
Статический вложенный класс имеет прямой доступ только к статическим полям обрамляющего класса.
Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например: Outer.this.field.
Каким образом из вложенного класса получить доступ к полю внешнего класса?
Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например: Outer.this.field.
👍31
Скачиваем видео с Youtube
VGet позволит вам скопировать видео с YouTube, используя только URL-адрес.
Как видите, первая строка кода в блоке try просто указывает URL-адрес YouTube.
В следующей строке указывается путь, по которому вы хотите сохранить загруженный файл.
Далее код создает экземпляр VGet. Это рабочий класс, который будет обрабатывать процесс загрузки.
Наконец, код вызывает download() метод VGet объекта.
Подробнее ознакомиться можно здесь.
VGet позволит вам скопировать видео с YouTube, используя только URL-адрес.
Как видите, первая строка кода в блоке try просто указывает URL-адрес YouTube.
В следующей строке указывается путь, по которому вы хотите сохранить загруженный файл.
Далее код создает экземпляр VGet. Это рабочий класс, который будет обрабатывать процесс загрузки.
Наконец, код вызывает download() метод VGet объекта.
Подробнее ознакомиться можно здесь.
👍45👎2
#Вопросы_с_собеседования
Верно ли утверждение, что примитивные типы данных всегда хранятся в стеке, а экземпляры ссылочных типов данных в куче?
Ответ:
Не совсем. Примитивное поле экземпляра класса хранится не в стеке, а в куче. Любой объект (всё, что явно или неявно создаётся при помощи оператора new) хранится в куче.
Верно ли утверждение, что примитивные типы данных всегда хранятся в стеке, а экземпляры ссылочных типов данных в куче?
Ответ:
👍36👎2
👍19😱13👎4❤1
Как в Java устроено выделение регистров в памяти
Когда виртуальная машина Java компилирует ваш исходный код Java в машинный, одна из задач, которые она должна при этом выполнить – решить, где хранить локальные переменные Java и другие подобные временные значения. В вашей машине отсутствует концепция локальных переменных, поэтому на этапе компиляции необходимо определиться, какое место в памяти стека (какой машинный регистр) будет использоваться для хранения каждой переменной. Эта операция называется «выделение регистров». Может показаться, что выделение регистров – сложная абстрактная теоретическая тема, но в этом коротком посте я покажу, как сначала соотнести исходный код Java с теорией, потом понять, как его видит компилятор, а потом – показать результирующий машинный код. В данном случае моя цель – продемонстрировать, что все эти концепции очень легко опробовать на практике с реальным компилятором.
Читать статью
Когда виртуальная машина Java компилирует ваш исходный код Java в машинный, одна из задач, которые она должна при этом выполнить – решить, где хранить локальные переменные Java и другие подобные временные значения. В вашей машине отсутствует концепция локальных переменных, поэтому на этапе компиляции необходимо определиться, какое место в памяти стека (какой машинный регистр) будет использоваться для хранения каждой переменной. Эта операция называется «выделение регистров». Может показаться, что выделение регистров – сложная абстрактная теоретическая тема, но в этом коротком посте я покажу, как сначала соотнести исходный код Java с теорией, потом понять, как его видит компилятор, а потом – показать результирующий машинный код. В данном случае моя цель – продемонстрировать, что все эти концепции очень легко опробовать на практике с реальным компилятором.
Читать статью
👍14
Корректно ли такое выражение?
Anonymous Quiz
44%
Да
47%
Нет, будет ошибка компиляции
9%
Нет, будет ошибка во время выполнения
👍24😱1
Побитовые операции
•
•
•
•
•
•
•
•
•
•
•
•
•
•
~
: Побитовый унарный оператор NOT;•
&
: Побитовый AND;•
&=
: Побитовый AND с присваиванием;•
|
: Побитовый OR;•
|=
: Побитовый OR с присваиванием;•
^
: Побитовый исключающее XOR;•
^=
: Побитовый исключающее XOR с присваиванием;•
>>
: Сдвиг вправо (деление на 2 в степени сдвига);•
>>=
: Сдвиг вправо с присваиванием;•
>>>
: Сдвиг вправо без учёта знака;•
>>>=
: Сдвиг вправо без учёта знака с присваиванием;•
<<
: Сдвиг влево (умножение на 2 в степени сдвига);•
<<=
: Сдвиг влево с присваиванием.👍30
#Вопросы_с_собеседования
Приведите пример, когда какая-либо коллекция выбрасывает UnsupportedOperationException.
Ответ:
В примере возникает ошибка, потому что
Приведите пример, когда какая-либо коллекция выбрасывает UnsupportedOperationException.
Ответ:
В примере возникает ошибка, потому что
Collections.emptyList()
возвращает пустой список без возможности добавления элементов.👍30
JUnit
JUnit — свободный Java-фреймворк для создания модульных тестов (они же — юнит-тесты). Эта библиотека — одна из самых популярных, её используют почти все. Рекомендуем вам разобраться с ней как можно быстрее, поскольку очень часто начинающих Java-разработчиков и Java Trainee заставляют «покрывать код тестами». И, надо сказать, это далеко не самое плохое начало карьеры.
Больше информации о Junit можно найти здесь.
JUnit — свободный Java-фреймворк для создания модульных тестов (они же — юнит-тесты). Эта библиотека — одна из самых популярных, её используют почти все. Рекомендуем вам разобраться с ней как можно быстрее, поскольку очень часто начинающих Java-разработчиков и Java Trainee заставляют «покрывать код тестами». И, надо сказать, это далеко не самое плохое начало карьеры.
Больше информации о Junit можно найти здесь.
👍11
#Вопросы_с_собеседования
Есть ли какие-либо рекомендации о том, какие поля следует использовать при подсчете hashCode()?
Общий совет: выбирать поля, которые с большой долью вероятности будут различаться. Для этого необходимо использовать уникальные, лучше всего примитивные поля, например, такие как id, uuid. При этом нужно следовать правилу, если поля задействованы при вычислении hashCode(), то они должны быть задействованы и при выполнении equals().
Есть ли какие-либо рекомендации о том, какие поля следует использовать при подсчете hashCode()?
Общий совет: выбирать поля, которые с большой долью вероятности будут различаться. Для этого необходимо использовать уникальные, лучше всего примитивные поля, например, такие как id, uuid. При этом нужно следовать правилу, если поля задействованы при вычислении hashCode(), то они должны быть задействованы и при выполнении equals().
👍21
👍30
#Вопросы_с_собеседования
Поддерживает ли язык Java множественное наследование?
Это очень хитрый вопрос. Интервьюеры часто говорят: если язык C++ может поддерживать непосредственное множественное наследование, то почему Java не может?
Ответ несколько более сложен, чем может показаться на первый взгляд, поскольку Java поддерживает множественное наследование типов, ведь интерфейс в нём может расширять другие интерфейсы. Но множественное наследование реализаций язык Java не поддерживает.
Поддерживает ли язык Java множественное наследование?
Ответ несколько более сложен, чем может показаться на первый взгляд, поскольку Java поддерживает множественное наследование типов, ведь интерфейс в нём может расширять другие интерфейсы. Но множественное наследование реализаций язык Java не поддерживает.
👍42😱9👎5
👍21😱7👎1