Java Learning
18.8K subscribers
1.62K photos
1 video
3 files
994 links
№ 5079899194

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

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

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

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
Каким будет результат выполнения кода?
Anonymous Quiz
7%
25
22%
24
65%
32
1%
33
6%
Посмотреть ответ
👍24😢31
Переворачиваем изображение на 180 градусов

С помощью следующего фрагмента кода вы можете получить перевернутое на 180 градусов изображение.

Подробнее можно ознакомиться здесь.
👍15😱2😢1
#Вопросы_с_собеседования

🎙️ Можем ли мы объявить метод как final в интерфейсе?

Нет, мы не можем объявить метод как final, потому что все методы в интерфейсе абстрактны, поэтому он должен быть реализован подклассом, а метод final не может быть переопределен.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥1
Радиотелефончик на смартфоне на Java

Пишем радиотелефончик на смартфоне с помощью языка Java

Смотреть статью
👍114
#Вопросы_с_собеседования

🎙️ В чем разница между кучей и стековой памятью?

Ответ на картинке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍281
Пустая коллекция вместо Null

Если ваша программа может возвращать коллекцию, которая не содержит ни одного значения, убедитесь, что возвращена именно пустая коллекция, а не Null. Это сэкономит вам время на различные проверки.
👍16😢6
Object — это базовый класс для всех остальных объектов в Java. Любой класс наследуется от Object и, соответственно, наследует его методы:

public boolean equals(Object obj) – служит для сравнения объектов по значению; int hashCode() – возвращает hash код для объекта; String toString() – возвращает строковое представление объекта; Class getClass() – возвращает класс объекта во время выполнения; protected Object clone() – создает и возвращает копию объекта; void notify() – возобновляет поток, ожидающий монитор; void notifyAll() – возобновляет все потоки, ожидающие монитор; void wait() – остановка вызвавшего метод потока до момента пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; void wait(long timeout) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; void wait(long timeout, int nanos) – остановка вызвавшего метод потока на определённое время или пока другой поток не вызовет метод notify() или notifyAll() для этого объекта; protected void finalize() – может вызываться сборщиком мусора в момент удаления объекта при сборке мусора.
👍18
#Вопросы_с_собеседования

🎙️ Назовите исключения, создаваемые классами Spring DAO.

На диаграмме изображены все классы Spring DAO в иерархическом порядке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
#Вопросы_с_собеседования

🎙️ Что произойдет, если ключевое слово static не использовать с методом main() в Java?

Ошибки компиляции не будет, но во время выполнения мы получим ошибку NoSuchMethodError.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🤔1
#Вопросы_с_собеседования

🎙️ Что такое метод main?

Это точка входа в программу. В приложении их может быть много. Причем если ни одного метода main в приложении нет, при попытке запуска возникнет ошибка Error: Main method not found.

public static void main(String[] args) {}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15😢3
Метод regionMatches()

Используется для сравнения подстроки одной строки с подстрокой другой строки, то есть сравниваются части строк и возвращается результат этого сравнения — true (если части строк совпали) или false (не совпали).

Параметры

ignoreCase
— логическая переменная со значение true — игнорировать регистр, со значением false — не игнорировать регистр.
toffset — позиция, с которой начнем отсчет.
other — другая строка, часть которой мы будем сравнивать.
ooffset — позиция, с которой начнем отсчет в строке other
len — количество символов для сравнения.
👍73😢2
#Вопросы_с_собеседования

🎙️ В какой последовательности происходит вызов конструкторов при наследовании?

Сначала вызывается конструктор родительского или базового класса, а затем вызывается конструктор производного класса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20
FileOutputStream vs. FileWriter

Запись файлов на Java осуществляется двумя способами: FileOutputStream и FileWriter. Какой именно метод выбрать, зависит от конкретной задачи.

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

У FileWriter другое призвание: работа с потоками символов. Так что если вы пишете текстовые файлы, выбирайте этот метод.
👍271
#Вопросы_с_собеседования

🎙️ Что будет результатом выполнения следующего фрагмента кода?

Неопределенность, так как массив не отсортирован. Если добавить вызов Arrays.sort(array), то результат будет равен 2, потому что в отсортироанном массиве {-3, 4, 8, 10} число 8 имеет такой индекс.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍40
#Вопросы_с_собеседования

👁 Как получить коллекцию только для чтения?

При помощи:
Collections.unmodifiableList(list);
Collections.unmodifiableSet(set);
Collections.unmodifiableMap(map).

Эти методы принимают коллекцию в качестве параметра, и возвращают коллекцию только для чтения с теми же элементами внутри.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Объединение двух массивов

Наиболее лаконичный способ объединить элементы двух массивов – это воспользоваться классом ArrayUtils из Commons Lang.

Подробнее можно ознакомиться здесь.
👍21
#Вопросы_с_собеседования

👁 Почему хранить пароль предпочтительнее в char[]/byte[], а не в String?

☕️ Строка в виде литерала сразу раскрывает пароль, плюс она всегда хранится в string-пуле.
☕️ byte[]/char[] возможно сбросить после использования, и удалить все ссылки на него.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍331
Клонирование массивов

Когда вы клонируете одномерный массив, такой как Object[], выполняется «глубокая копия» с новым массивом, содержащим копии элементов исходного массива, а не ссылки.

Подробнее с методом clone() можно ознакомиться здесь.
👍13
#Вопросы_с_собеседования

👁 Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними?

• Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
• Для создания объекта статического вложенного класса объект внешнего класса не требуется.
• Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
• Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
• В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статической такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание .this после его имени. Например: Outer.this.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11