Java Developer – Telegram
Java Developer
15.7K subscribers
1.86K photos
141 videos
2 files
2.09K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

Сотрудничество: @bape_ads
Прайс: @bape_media

РКН: https://clck.ru/3GHfTK

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
⌨️ OutOfMemoryError

OutOfMemoryError — одна из критических ошибок во время исполнения программы, связанная с работой виртуальной машины Java (JVM). Вызывается в тех случаях, когда JVM не может выделить объект, потому что на него не хватает памяти.

Некоторые виды OutOfMemoryError:

OutOfMemoryError: Java heap space — объект не может быть размещен в куче Java из-за недостатка памяти;

OutOfMemoryError: GC Overhead limit exceeded — объем данных едва помещается в кучу, сборщик мусора работает все время, а программа Java работает очень медленно;

OutOfMemoryError: Requested array size exceeds VM limit — приложение попыталось выделить память для массива, размер которого превышает размер кучи;

OutOfMemoryError: Metaspace — в куче закончилось место, выделенное для метаданных;

OutOfMemoryError: request size bytes for reason. Out of swap space — произошел некоторый сбой при попытке выделения памяти из кучи;

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Вопрос с собеседования

Можно ли в конструкторе использовать return?

Ответ: можно, но без возвращаемого значения справа от return. То есть можно использовать return как вспомогательную конструкцию при вычислениях в конструкторе, чтобы срочно закончить (прервать) выполнение дальнейшего кода и завершить инициализацию объекта.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
1
С каким модификатором доступа можно обращаться к членам класса из любой точки программы?
Anonymous Quiz
3%
private
2%
protected
91%
public
4%
default
⌨️ Сигнатура метода

Сигнатура метода — это имя метода и типы входящих параметров (причем порядок параметров имеет значение). В сигнатуру метода не входит возвращаемое значение, а также бросаемые им исключения. Сигнатура метода в сочетании с типом возвращаемого значения и перечнем бросаемых исключений называется контрактом метода.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Задача с собеседования

В целочисленном массиве переместите все 0 в конец, сохраняя относительный порядок ненулевых элементов (Ответ на картинке).

Например:

Массив на вход: [0, 1, 0, 3, 12]
Вывод: [1, 3, 12, 0, 0]

Массив на вход: [0]
Вывод: [0]

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Вопрос с собеседования

Что такое Stream в Java?

Ответ: Java Stream — способ взаимодействия с потоком данных, который позволяет более удобно и компактно обрабатывать большие данные, а также распараллеливать обработку данных между определенным количеством потоков, что может дать прирост в производительности в использующем функционале.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👩‍💻 Ключевое слово final

Ключевое слово final в Java используется для обозначения переменных, методов и классов с неизменяемым значением или состоянием.

Переменная, объявленная как final, не может быть изменена после ее инициализации. Метод, объявленный как final, не может быть переопределен в подклассах. Класс, объявленный как final, не может быть расширен другими классами.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Отличия String, StringBuilder, StringBuffer

String — иммутабельный байтовый массив;
StringBuilder — helper-класс для построения строк, не предоставляет гарантий синхронизации;
StringBuffer — то же, что и StringBuilder, с synchronized методами.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 JUnit

JUnit — это фреймворк для языка программирования Java, предназначенный для автоматического тестирования программ.

Его основное назначение — unit-тестирование, то есть такое, когда по отдельности проверяется функциональность каждого компонента программы. В результате использования JUnit можно получить более стабильный и надежный программный код.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Узнаем точную дату с помощью Java

Через метод LocalDate.now() мы получаем текущую дату, затем вычитаем из нее заданное количество дней методом minusDays(), получая дату в прошлом. Затем создаем объект класса DateTimeFormatter, который позволяет задать формат выводимой даты ( "dd.MM.yyyy"). И наконец, форматируем дату методом format() и выводим результат на экран.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Какой класс лучше всего использовать для реализации кеша или для хранения метаданных об объектах?
Anonymous Quiz
66%
HashMap
13%
LinkedHashMap
9%
IdentityHashMap
12%
WeakHashMap
👩‍💻 PostgreSQL

PostgreSQL — это реляционная система управления базами данных (СУБД) с открытым исходным кодом, которая поддерживает SQL и предоставляет расширенные возможности, такие как поддержка JSON, XML и геоданных, а также многопоточность и транзакционность для обеспечения безопасности данных.

PostgreSQL используется для хранения и управления большим объемом данных в различных приложениях, включая веб-приложения, мобильные приложения, аналитические системы и многое другое.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с собеседования

Как принудительно запустить поток?

Ответ: никак, в Java не существует абсолютно никакого способа принудительного запуска потока. Это контролируется JVM и Java не предоставляет никакого API для управления этим процессом.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️ Логические операции и операторы в Java

& : Логическое AND (И);
&& : Сокращённое AND;
| : Логическое OR (ИЛИ);
|| : Сокращённое OR;
^ : Логическое XOR (исключающее OR (ИЛИ));
! : Логическое унарное NOT (НЕ);
&= : AND с присваиванием;
|= : OR с присваиванием;
^= : XOR с присваиванием;
== : Равно;
!= : Не равно;
?: : Тернарный (троичный) условный оператор.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Параллельная редукция

Параллельная редукция в Java — это процесс сокращения (редукции) коллекции элементов с использованием параллельных вычислений. В Java для этого можно использовать параллельные потоки и функциональные интерфейсы, такие как reduce(), collect() и stream().

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

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 «Монитор» в Java

Монитор, мьютекс (mutex) — это средство обеспечения контроля за доступом к ресурсу. У монитора может быть максимум один владелец в каждый текущий момент времени. Следовательно, если кто-то использует ресурс и захватил монитор для обеспечения единоличного доступа, то другой, желающий использовать тот же ресурс, должен подождать освобождения монитора, захватить его и только потом начать использовать ресурс.

Удобно представлять монитор как id захватившего его объекта. Если этот id равен 0 — ресурс свободен. Если не 0 — ресурс занят. Можно встать в очередь и ждать его освобождения.

В Java у каждого экземпляра объекта есть монитор, который контролируется непосредственно JVM. Используется он так: любой нестатический synchronized-метод при своем вызове прежде всего пытается захватить монитор того объекта, у которого он вызван (на который он может сослаться как на this). Если это удалось — метод исполняется. Если нет — поток останавливается и ждет, пока монитор будет отпущен.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие из методов отсутствуют в String?
Anonymous Quiz
18%
isEmpty()
6%
length()
32%
capacity()
44%
codePointBefore()
👩‍💻 Возведение в степень методом Math.pow()

Метод Math.pow() возводит значение первого аргумента в степень второго аргумента, позволяя осуществить быстрое возведение в степень любых значений. Следует отметить, что для вывода на экран целого значения используется "%.0f", так как метод Math.pow() возвращает double значение.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Структура веб-проекта

src/main/java — Исходники приложения/библиотеки;

src/main/resources — Ресурсные файлы приложения/библиотеки;

src/main/filters — Файлы сервлетных фильтров;

src/main/webapp — Исходники веб-приложения;

src/test/java — Исходники тестов;

src/test/resources — Ресурсные файлы тестов;

src/test/filters — Тесты сервлетных фильтров;

src/it — Интеграционные тесты;

src/assembly — Описание сборки;

src/site — Сайт;

LICENSE.txt — Лицензия проекта;

NOTICE.txt — Замечания и определения библиотек зависимостей;

README.txt — Описание проекта;

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с собеседования

Что такое Instance Variable?

Ответ: Instance Variable — переменная, которая определена внутри класса, и она существует вплоть до того момента, пока существует объект.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM