Java Learning
19.7K subscribers
1.58K photos
1 video
3 files
954 links
№ 5079899194

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

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

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

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

Что такое тернарный оператор выбора?

Тернарный условный оператор ?: - оператор, которым можно заменить некоторые конструкции операторов if-then-else.

Выражение записывается в следующей форме:

условие ? выражение1 : выражение2

Если условие выполняется, то вычисляется выражение1 и его результат становится результатом выполнения всего оператора. Если же условие равно false, то вычисляется выражение2 и его значение становится результатом работы оператора. Оба операнда выражение1 и выражение2 должны возвращать значение одинакового (или совместимого) типа.
👍26👎1
👍4
Что выведет код сверху?
Anonymous Quiz
12%
4.5
55%
4
13%
5
20%
Error
👍25😱1
Класс FileReader

FileReader — это класс в пакете java .io, который можно использовать для чтения потока символов из файлов. Этот класс использует либо указанную кодировку, либо кодировку платформы по умолчанию для декодирования байтов в символы.

Разберём некоторые методы класса:
read() — метод читает и передает один символ или -1, если поток завершен;
read(char [] charBuffer, int offset, int length) — считывает поток символов и сохраняет их в заданном символьном буфере. offset - это позиция, с которой начинается чтение, а length - это общее количество символов, которые необходимо прочитать. Он передает большое количество прочитанных символов либо -1, если поток завершен;
ready() — сообщает, готов ли поток к чтению. Считается, что поток готов, если его входной буфер не пуст;
getEncoding() — используется для возврата заголовка кодировки символов, которая используется потоком;
close() — закрывает поток и освобождает связанные с ним системные ресурсы.
👍231
#Вопросы_с_собеседования

Для чего нужен метод hashCode()?

Метод hashCode() необходим для вычисления хэш кода переданного в качестве входного параметра объекта. В Java это целое число, в более широком смысле - битовая строка фиксированной длины, полученная из массива произвольной длины. Этот метод реализован таким образом, что для одного и того же входного объекта, хэш код всегда будет одинаковым. Следует понимать, что в Java множество возможных хэш кодов ограничено типом int, а множество объектов ничем не ограничено. Из-за этого, вполне возможна ситуация, что хэш коды разных объектов могут совпасть:
• если хэш коды разные, то и объекты гарантированно разные;
• если хэш коды равны, то объекты не обязательно равны(могут быть разные).
👍34
Программа на Java, убирающая все переносы в строке

Для замены всех переносов («\n») можно использовать функцию replace(). String replace() возвращает новый объект String, который содержит ту же последовательность символов, что и исходная строка, но с замененным символом.

Таким образом с помощью функции replace() можно заменять любые символы в строке на нужные.
👍36
#Вопросы_с_собеседования

Почему char[] предпочтительнее String для хранения пароля?

С момента создания строка остаётся в пуле, до тех пор, пока не будет удалена сборщиком мусора. Поэтому, даже после окончания использования пароля, он некоторое время продолжает оставаться доступным в памяти и способа избежать этого не существует. Это представляет определённый риск для безопасности, поскольку кто-либо, имеющий доступ к памяти сможет найти пароль в виде текста. В случае использования массива символов для хранения пароля имеется возможность очистить его сразу по окончанию работы с паролем, позволяя избежать риска безопасности, свойственного строке.
👍51
Метод regionMatches()

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

Параметры

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

Какая основная разница между String, StringBuffer, StringBuilder?

Класс String является неизменяемым (immutable) - модифицировать объект такого класса нельзя, можно лишь заменить его созданием нового экземпляра.

Класс StringBuffer изменяемый - использовать StringBuffer следует тогда, когда необходимо часто модифицировать содержимое.

Класс StringBuilder был добавлен в Java 5 и он во всем идентичен классу StringBuffer за исключением того, что он не синхронизирован и поэтому его методы выполняются значительно быстрей.
👍31
Что выведет код сверху?
Anonymous Quiz
15%
14
18%
12
7%
10
60%
Error
👍172
#Вопросы_с_собеседования

Могут ли у разных объектов быть одинаковые hashCode()?

Да, могут. Метод hashCode() не гарантирует уникальность возвращаемого значения. Ситуация, когда у разных объектов одинаковые хэш коды называется коллизией. Вероятность возникновения коллизии зависит от используемого алгоритма генерации хэш кода.
👍36
assert может принимать 2 аргумента

Обычно assert используется для проверки некоторого условия и бросает AssertionError если условие не удовлетворяется. Чаще всего проверка выглядит так(см 1 на картинке)

Однако, она может быть и такой(см 2 на картинке)

Сообразительный читатель уже догадался, что второе выражение (кстати, оно ленивое) возвращает значение типа Object, которое передаётся в AssertionError и несёт пользователю дополнительные сведения об ошибке. Более формальное описание можно посмотреть тут.
👍17
Что выведет код сверху?
Anonymous Quiz
47%
Hello
8%
null
22%
nullHello
23%
Error
👍8😱2
#Вопросы_с_собеседования

Опишите иерархию исключений.

Исключения делятся на несколько классов, но все они имеют общего предка — класс Throwable, потомками которого являются классы Exception и Error.

Ошибки (Errors) представляют собой более серьёзные проблемы, которые, согласно спецификации Java, не следует обрабатывать в собственной программе, поскольку они связаны с проблемами уровня JVM. Например, исключения такого рода возникают, если закончилась память доступная виртуальной машине.

Исключения (Exceptions) являются результатом проблем в программе, которые в принципе решаемы, предсказуемы и последствия которых возможно устранить внутри программы. Например, произошло деление целого числа на ноль.
👍19