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
👩‍💻 Spring Framework

Spring — это фреймворк для создания приложений на языке Java. Он предоставляет широкий спектр инструментов и функций, которые помогают упростить разработку, тестирование и развертывание приложений. Spring Framework включает в себя инверсию контроля, аспектно-ориентированное программирование, JDBC-шаблоны, ORM, интеграцию с другими фреймворками и технологиями, такими как Hibernate, JPA, Struts, JSF, Web Services и многими другими.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Надежный способ проверить, равны ли два значения типа double

Наиболее надежный и точный способ проверить это — использовать Dоuble.соmpare() и сравнить значение с нулем.

Результаты сравнений при помощи Double.compare():
Значение = 0, если d1 == d2;
Значение < 0, если d1 < d2;
Значение > 0, если d1 > d2.

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

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

Ответ: во-первых, строка в виде литерала сразу раскрывает пароль, а также она всегда хранится в string-пуле. Во-вторых, byte[] или char[] можно сбросить после использования и удалить на них все ссылки.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Примитивные типы данных

byte — целые числа в диапазоне от -128 до 127 — 1 байт;
short — целые числа в диапазоне от -32768 до 32767 — 2 байта;
int — целые числа в диапазоне от -2 147 483 648 до 2 147 483 647 — 4 байта;
long — целые числа в диапазоне от 9223372036854775808 до 9223372036854775807 — 8 байтов;
float — числа с плавающей запятой в диапазоне от -3.4E+38 до 3.4E+38 — 4 байта;
double — числа с плавающей запятой в диапазоне от -1.7E+308 до 1.7E+308 — 8 байтов;
char — одиночные символы в UTF-16 — 2 байта;
boolean — значения true или false — 1 байт.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Укажите тернарный оператор:
Anonymous Quiz
11%
!
11%
^
56%
? :
22%
&&
👩‍💻 Сортировка пузырьком

Алгоритм сортировки пузырьком (Bubble Sort) представляет собой итерационный процесс, в котором сравниваются соседние элементы массива. Если элемент слева больше элемента справа, то значения меняются местами. Это продолжается до тех пор, пока все элементы не будут отсортированы по возрастанию.

В приведенном коде метод bubbleSort() использует входной параметр sortArray — массив, который нужно отсортировать. Внешний цикл for итерируется по каждому элементу массива, а внутренний цикл for начинается с первого элемента массива до предпоследнего индекса — sortArr.length - i - 1.

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

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

Ответ: -Xss

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Абстракция

Абстрагирование — это способ выделить набор общих характеристик объекта, исключая из рассмотрения частные и незначимые. Соответственно, абстракция — это набор всех таких характеристик.

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

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Чем является ключевое слово «private»?
Anonymous Quiz
2%
Типом данных
3%
Оператором
2%
Литералом
93%
Модификатором доступа
⌨️ 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