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

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

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

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
👩‍💻 Java Server Pages (JSP)

JSP (Java Server Pages) — платформонезависимая переносимая и легко расширяемая технология разработки веб-приложений, позволяющая создавать содержимое, которое имеет как статические, так и динамические компоненты.

Страница JSP содержит текст двух типов: статические исходные данные, которые могут быть оформлены в одном из текстовых форматов HTML, SVG, WML, или XML, и JSP-элементы, которые конструируют динамическое содержимое. Кроме этого могут использоваться библиотеки JSP-тегов, а также EL (Expression Language), для внедрения Java-кода в статичное содержимое JSP-страниц.

Код JSP-страницы транслируется в Java-код сервлета с помощью компилятора JSP-страниц Jasper, и затем компилируется в байт-код JVM.

JSP-страницы загружаются на сервере и управляются Java EE Web Application. Обычно такие страницы упакованы в файловые архивы .war и .ear.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Какое из перечисленных имён является простым?
Anonymous Quiz
2%
MyClass.name.toString().hashCode()
11%
MyClass.name.toString()
54%
MyClass
12%
Ни один из перечисленных
😁11
👩‍💻 Queue

Queue
— это интерфейс в Java Collections Framework, который представляет собой коллекцию элементов, организованных в соответствии с принципом FIFO (First In, First Out). Это означает, что элементы добавляются в конец очереди и извлекаются из начала очереди.

Queue используется в ситуациях, когда необходимо управлять порядком обработки элементов.

В примере мы создаем очередь строк и добавляем в нее три элемента. Затем извлекаем элементы из очереди с помощью метода poll(), который возвращает и удаляет элемент из начала очереди. Элементы извлекаются в том же порядке, в каком и добавляются.

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

FutureTask — отменяемое асинхронное вычисление в параллельном Java приложении. Этот класс предоставляет базовую реализацию Future, с методами для запуска и остановки вычисления, методами для запроса состояния вычисления и извлечения результатов. Результат может быть получен только когда вычисление завершено, метод получения будет заблокирован, если вычисление ещё не завершено.

Объекты FutureTask могут быть использованы для обёртки объектов Callable и Runnable. Так как FutureTask реализует Runnable, его можно передать в Executor на выполнение.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Узнаем разницу между датами

Для вычисления разницы между двумя датами, представленными в виде строк, можно использовать классы java.time.LocalDate и java.time.temporal.ChronoUnit из пакета java.time.

В этом примере мы используем метод LocalDate.parse() для преобразования строковых значений в объекты типа LocalDate. Затем мы используем метод ChronoUnit.between() для вычисления разницы между двумя датами в днях, месяцах и годах.

Обратите внимание, что вы должны использовать формат даты "yyyy-MM-dd" для парсинга строковых значений даты. Если ваши строки даты имеют другой формат, вам может потребоваться использовать другой метод для преобразования их в объекты LocalDate.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Dependency Injection в Spring Framework

Инверсия контроля (inversion of control, IoC) — принцип проектирования, по которому контроль над потоком управления передается фреймворку. Управляющий и прикладной код разделяются. При разработке модуля этот подход избавляет от необходимости знать о других модулях программы и деталях их взаимодействия. Такой код становится более переиспользуемым и модульным, уменьшает связность.

Внедрение зависимостей (Dependency Injection, DI) — одна из реализаций IoC. При взаимодействии с другими модулями, программа оперирует высокоуровневыми абстракциями, тогда как конкретная её реализация поставляется фреймворком.

Стандартная реализация DI — фреймворк инстанциирует все сервисы, и складывает их в IoC-контейнер. При этом специальная сущность, Service Locator, занимается поиском соответствия реализаций абстракциям и их внедрением.

Сущности бизнес-логики в Spring, как и в JavaEE называются beans. Бины объявляются различными способами, корни большинства из них лежат в понятии Configuration. В качестве контейнера бинов выступает ApplicationContext. Чтобы передать инициализацию зависимости контексту, она помечается аннотацией @Autowired.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Как называется оператор, увеличивающий значение переменной на еденицу?
Anonymous Quiz
90%
Инкремент
6%
Декремент
4%
Такого оператора нет
1
Вопрос с собеседования

Что такое маркерный интерфейс?

Ответ: Маркерный интерфейс — это интерфейс без каких-либо методов. Обычно он реализуется классом или расширяется другим интерфейсом для обозначения определённого свойства.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
📱 Всё о Java / Войти в IT после 30 / Интервью с Senior Java Developer

Смотреть видео

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Разница между классами java.util.Collection и java.util.Collections

java.util.Collections — набор статических методов для работы с коллекциями.

java.util.Collection — один из основных интерфейсов Java Collections Framework.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Метод substring

Метод substring() используется для извлечения подстроки из строки и не изменяет исходную строку, а возвращает новую подстроку. Метод имеет две формы:

substring(int beginIndex) — извлекает подстроку от beginIndex до конца строки;

substring(int beginIndex, int endIndex) — извлекает подстроку от beginIndex до endIndex.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Основные принципы Stream API

Stream API — это функциональный интерфейс в Java 8, который позволяет работать с коллекциями объектов с помощью функциональных операций.

Основные принципы Stream API включают в себя:

Stream API не выполняет операции над элементами коллекции до тех пор, пока не будет вызван терминальный метод;

Stream API представляет собой поток данных, который можно обрабатывать с помощью функциональных операций;

Stream API предоставляет множество функциональных операций, таких как filter(), map(), reduce() и т. д., которые позволяют обрабатывать элементы потока данных;

Stream API не изменяет исходную коллекцию, а создает новый поток данных на основе исходной коллекции;

Stream API позволяет обрабатывать элементы потока данных параллельно, что может ускорить выполнение операций над большими коллекциями;

Stream API требует вызова терминальной операции, такой как forEach(), collect() или reduce(), чтобы выполнить операции над элементами потока данных и получить результат.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Узнаем количество цифр в строке

В примере на картинке мы объявляем строку str и устанавливаем ее значение на "abc123def456". Затем мы создаем переменную count, которая будет использоваться для подсчета количества цифр в строке.

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

К каким конструкциям Java применим модификатор static?

Ответ: полям, методам, вложенным классам, членам секции import.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️Добавили комментарии

Что ещё хотели бы видеть на канале? Жду ваши предложения!

🧑‍💻Всем продуктивного дня, работаем!
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Метод interrupt()

interrupt() используется для прерывания потока исполнения. Этот метод является частью класса Thread и позволяет прервать поток, вызывая исключение InterruptedException, если поток находится в состоянии ожидания или блокировки. Если поток не находится в таком состоянии, метод interrupt() устанавливает флаг прерывания, который можно проверить с помощью метода isInterrupted().

Метод interrupt() может применяться в различных ситуациях, например, когда необходимо остановить поток по запросу пользователя или когда поток должен завершиться по достижении определенного условия.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Что имеет более высокий уровень абстракции?
Anonymous Quiz
11%
Класс
35%
Абстрактный класс
54%
Интерфейс
1
👩‍💻 Java Bean

JavaBeans — это стандартный подход к созданию переносимых и повторно используемых компонентов. Они представляют собой классы, которые следуют определенным соглашениям и обеспечивают удобный способ управления состоянием и поведением объектов.

Основные характеристики JavaBeans:

Класс должен быть публичным и иметь открытый конструктор без аргументов;

Приватные поля класса должны быть доступны с помощью геттеров и сеттеров (getter и setter методы);

Класс должен быть сериализуемым, то есть должен реализовывать интерфейс Serializable.

JavaBeans также могут иметь дополнительные свойства, такие как события и методы уведомления, которые позволяют другим компонентам реагировать на изменения состояния.

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

Могут ли нестатические методы перегрузить статические?

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

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Статические поля

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

Статические поля объявляются с модификатором static и принадлежат классу, а не отдельным объектам. Доступ к ним осуществляется через имя класса.

Изменение статического поля в одном объекте отражается на всех объектах.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Блоки инициализации

Блоки инициализации используются для выполнения определенного кода при создании объекта. Их использование позволяет вынести логику инициализации полей объекта за пределы конструкторов.

Бывает два типа блоков инициализации:

Блоки инициализации экземпляра — выполняются при создании каждого нового экземпляра класса. Они объявляются с помощью ключевого слова instance и фигурных скобок.

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

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