3 применения исключений, которые улучшат навыки программирования на Java.
https://nuancesprog.ru/p/13660/
https://nuancesprog.ru/p/13660/
NOP::Nuances of programming
3 применения исключений, которые улучшат навыки программирования на Java
Не следует использовать ifPresentOrElse для исключений. Вот как это обычно происходит (плохой пример применения пользовательских исключений времени выполнения с ifPresentOrElse)
👍9
Класс FileReader
FileReader — это класс в пакете java .io, который можно использовать для чтения потока символов из файлов. Этот класс использует либо указанную кодировку, либо кодировку платформы по умолчанию для декодирования байтов в символы.
Разберём некоторые методы класса:
read() — метод читает и передает один символ или -1, если поток завершен;
read(char [] charBuffer, int offset, int length) — считывает поток символов и сохраняет их в заданном символьном буфере. offset - это позиция, с которой начинается чтение, а length - это общее количество символов, которые необходимо прочитать. Он передает большое количество прочитанных символов либо -1, если поток завершен;
ready() — сообщает, готов ли поток к чтению. Считается, что поток готов, если его входной буфер не пуст;
getEncoding() — используется для возврата заголовка кодировки символов, которая используется потоком;
close() — закрывает поток и освобождает связанные с ним системные ресурсы.
FileReader — это класс в пакете java .io, который можно использовать для чтения потока символов из файлов. Этот класс использует либо указанную кодировку, либо кодировку платформы по умолчанию для декодирования байтов в символы.
Разберём некоторые методы класса:
read() — метод читает и передает один символ или -1, если поток завершен;
read(char [] charBuffer, int offset, int length) — считывает поток символов и сохраняет их в заданном символьном буфере. offset - это позиция, с которой начинается чтение, а length - это общее количество символов, которые необходимо прочитать. Он передает большое количество прочитанных символов либо -1, если поток завершен;
ready() — сообщает, готов ли поток к чтению. Считается, что поток готов, если его входной буфер не пуст;
getEncoding() — используется для возврата заголовка кодировки символов, которая используется потоком;
close() — закрывает поток и освобождает связанные с ним системные ресурсы.
👍9
#Вопросы_с_собеседования
🎙️ Что вы подразумеваете под статическим блоком в Java?
Статический блок в Java используется для инициализации статических переменных класса. Он выполняется только один раз: при первой загрузке класса в память.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
👍24😢3❤1
Переворачиваем изображение на 180 градусов
С помощью следующего фрагмента кода вы можете получить перевернутое на 180 градусов изображение.
Подробнее можно ознакомиться здесь.
С помощью следующего фрагмента кода вы можете получить перевернутое на 180 градусов изображение.
Подробнее можно ознакомиться здесь.
👍15😱2😢1
#Вопросы_с_собеседования
🎙️ Можем ли мы объявить метод как final в интерфейсе?
Нет, мы не можем объявить метод как final, потому что все методы в интерфейсе абстрактны, поэтому он должен быть реализован подклассом, а метод final не может быть переопределен.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥1
Радиотелефончик на смартфоне на Java
Пишем радиотелефончик на смартфоне с помощью языка Java
Смотреть статью
Пишем радиотелефончик на смартфоне с помощью языка Java
Смотреть статью
👍11❤4
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() – может вызываться сборщиком мусора в момент удаления объекта при сборке мусора.
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 в иерархическом порядке.
На диаграмме изображены все классы 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) {}
Это точка входа в программу. В приложении их может быть много. Причем если ни одного метода 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 — количество символов для сравнения.
Используется для сравнения подстроки одной строки с подстрокой другой строки, то есть сравниваются части строк и возвращается результат этого сравнения — true (если части строк совпали) или false (не совпали).
Параметры
ignoreCase — логическая переменная со значение true — игнорировать регистр, со значением false — не игнорировать регистр.
toffset — позиция, с которой начнем отсчет.
other — другая строка, часть которой мы будем сравнивать.
ooffset — позиция, с которой начнем отсчет в строке other
len — количество символов для сравнения.
👍7❤3😢2
#Вопросы_с_собеседования
🎙️ В какой последовательности происходит вызов конструкторов при наследовании?
Сначала вызывается конструктор родительского или базового класса, а затем вызывается конструктор производного класса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20
FileOutputStream vs. FileWriter
Запись файлов на Java осуществляется двумя способами: FileOutputStream и FileWriter. Какой именно метод выбрать, зависит от конкретной задачи.
FileOutputStream предназначен для записи потоков необработанных байтов. Это делает его идеальным решением для работы, например, с изображениями.
У FileWriter другое призвание: работа с потоками символов. Так что если вы пишете текстовые файлы, выбирайте этот метод.
Запись файлов на Java осуществляется двумя способами: FileOutputStream и FileWriter. Какой именно метод выбрать, зависит от конкретной задачи.
FileOutputStream предназначен для записи потоков необработанных байтов. Это делает его идеальным решением для работы, например, с изображениями.
У FileWriter другое призвание: работа с потоками символов. Так что если вы пишете текстовые файлы, выбирайте этот метод.
👍27❤1
#Вопросы_с_собеседования
🎙️ Что будет результатом выполнения следующего фрагмента кода?
Неопределенность, так как массив не отсортирован. Если добавить вызов 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.
Подробнее можно ознакомиться здесь.
Наиболее лаконичный способ объединить элементы двух массивов – это воспользоваться классом ArrayUtils из Commons Lang.
Подробнее можно ознакомиться здесь.
👍21