Java Learning
19.5K subscribers
1.6K photos
1 video
3 files
974 links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.iss.one/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
#Вопросы_с_собеседования

Верно ли утверждение, что примитивные типы данных всегда хранятся в стеке, а экземпляры ссылочных типов данных в куче?

Ответ:
Не совсем. Примитивное поле экземпляра класса хранится не в стеке, а в куче. Любой объект (всё, что явно или неявно создаётся при помощи оператора new) хранится в куче.
👍36👎2
Что выведет код сверху?
Anonymous Quiz
4%
11
28%
12
31%
22
37%
Compilation error
👍19😱13👎41
Разница дат в Java

Иногда Вам может понадобиться рассчитать разницу между датами, измерить точку во времени в миллисекундах.

Результат выполнения кода будет похож на это:

Fri Jan 07 17:11:18 GMT 2022

Fri Jan 07 17:11:28 GMT 2022

Разница между датами: 10069 миллисекунд
👍16👎5
​​Как в Java устроено выделение регистров в памяти

Когда виртуальная машина Java компилирует ваш исходный код Java в машинный, одна из задач, которые она должна при этом выполнить – решить, где хранить локальные переменные Java и другие подобные временные значения. В вашей машине отсутствует концепция локальных переменных, поэтому на этапе компиляции необходимо определиться, какое место в памяти стека (какой машинный регистр) будет использоваться для хранения каждой переменной. Эта операция называется «выделение регистров». Может показаться, что выделение регистров – сложная абстрактная теоретическая тема, но в этом коротком посте я покажу, как сначала соотнести исходный код Java с теорией, потом понять, как его видит компилятор, а потом – показать результирующий машинный код. В данном случае моя цель – продемонстрировать, что все эти концепции очень легко опробовать на практике с реальным компилятором.

Читать статью
👍14
👍24😱1
Побитовые операции

~ : Побитовый унарный оператор NOT;
& : Побитовый AND;
&= : Побитовый AND с присваиванием;
| : Побитовый OR;
|= : Побитовый OR с присваиванием;
^ : Побитовый исключающее XOR;
^= : Побитовый исключающее XOR с присваиванием;
>> : Сдвиг вправо (деление на 2 в степени сдвига);
>>= : Сдвиг вправо с присваиванием;
>>> : Сдвиг вправо без учёта знака;
>>>= : Сдвиг вправо без учёта знака с присваиванием;
<< : Сдвиг влево (умножение на 2 в степени сдвига);
<<= : Сдвиг влево с присваиванием.
👍30
#Вопросы_с_собеседования

Приведите пример, когда какая-либо коллекция выбрасывает UnsupportedOperationException.

Ответ:
В примере возникает ошибка, потому что Collections.emptyList() возвращает пустой список без возможности добавления элементов.
👍30
JUnit

JUnit — свободный Java-фреймворк для создания модульных тестов (они же — юнит-тесты). Эта библиотека — одна из самых популярных, её используют почти все. Рекомендуем вам разобраться с ней как можно быстрее, поскольку очень часто начинающих Java-разработчиков и Java Trainee заставляют «покрывать код тестами». И, надо сказать, это далеко не самое плохое начало карьеры.

Больше информации о Junit можно найти здесь.
👍11
#Вопросы_с_собеседования

Есть ли какие-либо рекомендации о том, какие поля следует использовать при подсчете hashCode()?

Общий совет: выбирать поля, которые с большой долью вероятности будут различаться. Для этого необходимо использовать уникальные, лучше всего примитивные поля, например, такие как id, uuid. При этом нужно следовать правилу, если поля задействованы при вычислении hashCode(), то они должны быть задействованы и при выполнении equals().
👍21
Что выведет код сверху?
Anonymous Quiz
14%
1
41%
2
5%
11
41%
Error
👍30
#Вопросы_с_собеседования

Поддерживает ли язык Java множественное наследование?

Это очень хитрый вопрос. Интервьюеры часто говорят: если язык C++ может поддерживать непосредственное множественное наследование, то почему Java не может?

Ответ несколько более сложен, чем может показаться на первый взгляд, поскольку Java поддерживает множественное наследование типов, ведь интерфейс в нём может расширять другие интерфейсы. Но множественное наследование реализаций язык Java не поддерживает.
👍42😱9👎5
Создание PDF-файлов в Java

Смотреть статью
👍13
👍12👎2
Что выведет код сверху?
Anonymous Quiz
62%
tryfinally
9%
trycatchfinally
10%
catchfinally
19%
Error
👍21😱7👎1
#Вопросы_с_собеседования

Зачем добавили ArrayList, если уже был Vector?

• Методы класса Vector синхронизированы, а ArrayList - нет;
• По умолчанию, Vector удваивает свой размер, когда заканчивается выделенная под элементы память. ArrayList же увеличивает свой размер только на половину.

Vector это устаревший класс и его использование не рекомендовано.
👍42
Что выведет код сверху?
Anonymous Quiz
29%
100
3%
0
42%
10
27%
Error
👍291