seniorjavist | Unsorted

Telegram-канал seniorjavist - Senior Java Developer

-

Изучаем Java. По вопросам сотрудничества: @seniorvladislav

Subscribe to a channel

Senior Java Developer

Метод service()

Метод service() используется в Servlet классах в Java и вызывается контейнером сервлетов (например Tomcat) для обработки запроса клиента.

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

По умолчанию service() вызывает методы doGet, doPost, doPut etc. в зависимости от типа HTTP запроса.
Но можно переопределить его, чтобы реализовать свою собственную логику обработки запросов.

В этом примере мы переопределяем метод service() в классе MyServlet, который расширяет HttpServlet.
В методе мы получаем параметр "name" из HTTP запроса с помощью метода getParameter().
Затем формируем ответ, используя PrintWriter, в который записываем приветствие с именем пользователя.

#это_база

Читать полностью…

Senior Java Developer

IllegalStateException()

IllegalStateException
это тип checked исключения, которое генерируется при попытке выполнить операцию, которая не разрешена в текущем состоянии объекта.

Исключение IllegalStateException сигнализирует, что операция не может быть выполнена из-за некорректного состояния объекта.

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

Читать полностью…

Senior Java Developer

ИТ + научпоп + музыка = большой ИТ-пикник в Москве 💛

2 сентября Тинькофф, CodeFest и Мельница собирают большой благотворительный ИТ-фестиваль. Встречаемся в Коломенском на максимально летнем вайбе.

В программе: ИТ- и научпоп-лектории, выступления топовых спикеров, воркшопы, интерактивные зоны и вишенка на торте — музыкальные перформансы от Антохи MC, Zoloto, Therr Maitz, The Hatters, «Сироткина», а также секретного хедлайнера. Как думаете, кто им может быть?

Для участия нужно выбрать благотворительный фонд из списка и сделать донат от 1000 рублей. Подробности и регистрация — тут.

Реклама. АО "Тинькофф Банк"

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Какова иерархия коллекций?

В Java есть два основных интерфейса для коллекций - Collection и Map.

Interface Collection находится на верху иерархии и определяет общие методы для работы с коллекциями, такие как add(), remove(), size() и другие. От него наследуются конкретные реализации коллекций.

Наиболее часто используемые реализации Collection - это List, Set и Queue.

Map интерфейс реализует отдельную структуру данных. Он представляет отображение ключ-значение. Основные реализации - HashMap и TreeMap.

Читать полностью…

Senior Java Developer

LinkedList

LinkedList - это реализация связного списка на основе двусвязных элементов.

LinkedList оптимизирован для операций вставки/удаления элементов и часто используется там, где требуется динамически изменяемый список без ограничения размера.

В примере демонстрируются основные операции с LinkedList.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Что такое анонимные классы и где они применяются?

Анонимные классы - это классы без имени, которые используются для создания объекта определенного класса или интерфейса "на лету".

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

Чаще всего они применяются для:

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

Читать полностью…

Senior Java Developer

Библиотека Processing

Processing - это open source библиотека и среда программирования для Java, предназначенная для создания визуальных и графических приложений.

Processing широко используется для:

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

Также на базе Processing создана библиотека Processing.js для создания браузерной графики и визуализаций на JavaScript.

Читать полностью…

Senior Java Developer

BeanPostProcessor

BeanPostProcessor - это интерфейс, который позволяет выполнять дополнительную обработку бинов после их создания Spring'ом.

Чтобы использовать BeanPostProcessor, нужно создать класс, который реализует этот интерфейс, и зарегистрировать его как бин в контексте Spring.

Код на первом изображении реализует интерфейс BeanPostProcessor и переопределяет два его метода:
postProcessBeforeInitialization и
postProcessAfterInitialization.

Чтобы зарегистрировать этот post-processor, нужно добавить его в конфигурацию Spring. (изображение 2)

При запуске приложения для каждого создаваемого бина будет выведена информация в лог.

Читать полностью…

Senior Java Developer

Scala и Java-разработчикам с опытом от двух лет.

Тинькофф запускает Scala & Java Weekend Offer. Это когда вы проходите собеседование за выходные и можете сразу получить оффер.

Сравните скиллы с требованиями и оставьте заявку до 23 августа: https://o.tinkoff.ru/one-day-offer.java-scala

Читать полностью…

Senior Java Developer

Видим цель, не видим препятствий: зовем на курс по архитектуре приложений 👨‍💻

Работа в проектах, где в коде не разобраться, похожа на путешествие по горной тропе без карты.

Возможно, этот островок кода выглядит не очень надежно и его можно удалить? Бам! — и всё, что могло упасть, упало.

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

Узнать программу вы можете на нашем сайте

Что мы даем:
❓Понимание, что такое мышление архитектора.
📊Навыки создания чистого, управляемого проекта.
🔥Опыт и возможность совершить абсолютно все ошибки архитектора приложений в учебной среде.

Мы предусмотрели два варианта прохождения курса — Standart и Premium 🛍
Оба тарифа дают возможность присутствовать на встречах со спикерами, но в Premium вы попадете в закрытое сообщество студентов с преподавателями и получите подробное ревью вашего выполненного задания от ведущих. Старт — 18 сентября.

Выбрать свой тариф и присоединиться к группе вы можете по ссылке⚡️

Читать полностью…

Senior Java Developer

⚡ Отус, приглашает 14 августа в 19:00 по мск, на бесплатный вебинар “Применимость Kotlin в различных направлениях разработки: Multimedia, ML, 3D/VR, Frontend, IoT/Robotics, Blockchain”, онлайн-курса «Kotlin Backend Developer. Professional».

На вебинаре мы рассмотрим, как экосистема Kotlin может быть использована для создания программных продуктов в разных направлениях IT. Среди них: разработка фронтенда, работа с мультимедиа, машинное обучение, программирование роботов и создание 3D приложений.

➡️ Записаться на вебинар: https://otus.pw/ByTz/

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

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

Senior Java Developer

⚡️Программист, расширь свои возможности на бесплатном вебинаре онлайн-курса «Архитектура и шаблоны проектирования» в Отус — «Понятие «Декоратор» в программировании»: регистрация

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

🔥Продолжить обучение после вебинара по спеццене можно на полном курсе, доступном также в рассрочку.

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

Senior Java Developer

Разрабатывать высоконагруженные сервисы, работать только на современном стеке и за один день стать частью классной команды из амбициозных специалистов! Звучит как мечта, но это реальность One Day Offer для Java-разработчиков от Сбера 💻

Уже 12 августа Сбер приглашает Java-разработчиков уровня Middle/Senior/Lead познакомиться, пройти все этапы отбора, получите оффер и присоединиться к Java-сообществу крупнейшего банка страны.

Чем именно предстоит заниматься на должности Java-разработчика 👇

✔️ Участвовать в выводе продуктов с нуля в промышленную эксплуатацию.
✔️ Создавать высоконагруженные сервисы в направлениях digital и phygital.
✔️ Внедрять и автоматизировать новые процессы.
✔️ Создавать и развивать IT-продукты для сотрудников банка и миллионов клиентов.

Готовы к таким интересным задачам? Переходите по ссылке, регистрируйтесь на One Day Offer и участвуйте в интервью!

Читать полностью…

Senior Java Developer

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

Чтобы научиться обеспечивать надежность приложений, распределять транзакции и получить опыт работы с высоконагруженными проектами приходите 🗓 16 августа в 20:00 на открытый урок «Распределенные транзакции в System Design» онлайн курса «Highload Architect» от OTUS. Занятие проведет преподаватель 👨‍💻 Антон Цитульский — ведущий backend-разработчик в Тинькофф, спикер на конференции Codefest 2023.

На открытом уроке обсудим:
- Распределенные транзакции в System Design;
- Поддержание согласованности данных и обработки ошибок в случае сбоев;
- Паттерн Saga, чтобы управлять последовательностью транзакций, обеспечивая их атомарность и надежность.

Этот вебинар будет полезен разработчикам, архитекторам и техническим специалистам, заинтересованным в создании надежных и масштабируемых распределенных систем.

👉 Регистрируйтесь на занятие — https://otus.pw/G9r3/

Открытый урок приурочен к старту онлайн-курса «Highload Architect» в OTUS. После урока полный курс вы сможете приобрести удобным для вас способом.

Нативная интеграция. Информация на сайте www.otus.ru.

Читать полностью…

Senior Java Developer

Локальный класс (Local inner class)

Локальный класс - это класс, объявленный внутри метода или блока кода. Он доступен только в пределах этого метода или блока.

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

Здесь внутри метода main() объявлен локальный класс LocalClass. В нем определен метод printMessage().
Далее создается экземпляр LocalClass и вызывается его метод.

Читать полностью…

Senior Java Developer

Нашли лучшие курсы по Java-разработке!

Tutortop
— образовательный маркетплейс №1, где представлено свыше 5000 курсов от более чем 300 школ и все их можно сравнить по рейтингу, цене и отзывам, а еще купить дешевле, чем напрямую 🔥

Подборка из топовых курсов для обучения Java-разработчиков от tutortop:

Профессия: Java-разработчик с гарантией трудоустройства от Product Star. Рейтинг 4.8 из 5.
Скидка 10% по промокоду TUTORTOP до 18.08🎁

Курс: Frontend-разработчик с нуля до middle от Нетологии. Рейтинг 4.8 из 5.
Скидка 50% по промокоду TUTORTOP50 до 18.08🎁

Профессия: Fullstack-разработчик на JavaScript от Mathshub. Рейтинг 4.7 из 5.
Скидка 10% по промокоду TUTORTOP до 18.08🎁

Чтобы подробнее узнать про обучение или купить его, введите промокод TUTORTOP по ссылке на онлайн-курс по Java-разработке, который вам интересен.

⚡️Учиться выгоднее с tutortop!

Читать полностью…

Senior Java Developer

Класс Java.io.OutputStream

Java.io.OutputStream
- это абстрактный класс, который представляет поток вывода байтов.
Он является базовым классом для всех классов, которые представляют вывод информации в различные места назначения, такие как файл, сетевое соединение и т.д.

Основные подклассы OutputStream:
FileOutputStream, ByteArrayOutputStream, FilterOutputStream и др.

В результате работы кода из примера в файл file.txt будет записано:
Hello World!

#это_база

Читать полностью…

Senior Java Developer

Double.compare()

Метод Double.compare() используется для сравнения двух значений типа double.

Он принимает два значения double и возвращает:

- отрицательное число, если первое значение меньше второго.
- ноль, если значения равны.
- положительное число, если первое значение больше второго.

В этом примере мы передаем Double.compare() как компаратор в метод sort() из класса Arrays.
Это позволяет корректно отсортировать массив с плавающей точкой по возрастанию.

Читать полностью…

Senior Java Developer

ArrayList

ArrayList - это реализация динамического массива на основе обычного массива.

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

Однако, ArrayList менее эффективен при вставке/удалении элементов из середины.

Код из примера демонстрирует основные операции с ArrayList.

Читать полностью…

Senior Java Developer

Верстаешь?

С 15 по 21 августа проводим бесплатный онлайн-интенсив по Frontend-разработке, где будем учить, как разрабатывать сайты и веб-приложения.

Что будет:

1️⃣ Создание полноценного веб-сайта на HTML и CSS
Мы научим тебя создавать стильные и функциональные веб-страницы с использованием самых современных технологий.

2️⃣ Оживление страницы с помощью JavaScript
Узнаешь, как добавить интерактивность и динамичность в свои проекты.

3️⃣ Использование фронтенд-фреймворка Angular
Узнаешь, как использовать этот мощный инструмент для создания масштабируемых и эффективных веб-приложений.

4️⃣ Подключение Backend и загрузка сайта на хостинг
Мы научим тебя основам работы с Backend'ом и покажем, как развернуть свой проект на хостинге.

5️⃣ Советы по доработке проекта
Получишь ценные советы от опытных разработчиков, чтобы улучшить свой проект и достичь более высокого уровня качества.

👉 Участвуй бесплатно 🚀

Читать полностью…

Senior Java Developer

Метод retainAll()

Метод retainAll() используется для сохранения в коллекции только тех элементов, которые содержатся в указанной коллекции.

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

Не гарантирует порядок оставшихся элементов.

#это_база

Читать полностью…

Senior Java Developer

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

Чтобы узнать еще больше деталей при работе с микросервисами и о работе над крупными проектам приходите 🗓 14 августа в 20:00 МСК на открытый урок «Выбираем способ связи между микросервисами: Sync vs Async» онлайн курса «Microservice Architecture» от OTUS.

Спикером выступит 👨‍💻 Евгений Непомнящий, опытный разработчик в IT-Sense, специализирующийся на C++ и Java.

На открытом уроке:
- рассмотрим основные типы межсервисного взаимодействия: синхронное и асинхронное API;
- рассмотрим плюсы и минусы каждого типа;
- обсудим версионирование API;
- объясним, почему у хорошей архитектуры должен быть баланс между оркестрацией и хореографией;
- разберёмся, чем отличаются Anemic API и Rich API;
- затронем темы IDL, API design first.

👉 Регистрируйтесь на занятие — https://otus.pw/6AVs/

Открытый урок приурочен к старту онлайн-курса «Microservice Architecture» в OTUS. После урока полный курс вы сможете приобрести удобным для вас способом.

Нативная интеграция. Информация о продукте
www.otus.ru

Читать полностью…

Senior Java Developer

Метод startsWith()

Метод startsWith() используется для проверки, начинается ли строка с указанной подстроки.

startsWith() принимает в качестве аргумента строку, с которой нужно проверить, начинается ли исходная строка и возвращает:

true - если исходная строка начинается с заданной подстроки;
false - если исходная строка не начинается с заданной подстроки.

#это_база

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Если вы хотите переопределить equals(), какие условия должны удовлетворяться для переопределенного метода?

- Метод должен удовлетворять условиям транзитивности, рефлексивности и симметричности.

- Метод должен быть согласованным - многократные вызовы с неизменными объектами должны возвращать один и тот же результат.

- Если x.equals(y) вернёт true, то x.hashCode() должен быть равен y.hashCode().

- Метод не должен выбрасывать исключения при сравнении допустимых значений.

Читать полностью…

Senior Java Developer

Нестатические блоки инициализации

Нестатические блоки инициализации - это блоки кода, которые исполняются при создании объекта класса перед вызовом конструктора.
Они используются для инициализации членов класса.

В примере определен нестатический блок инициализации, который устанавливает значения для переменных x и y.

При создании объекта Main срабатывает следующая последовательность:
- Вызывается нестатический блок инициализации, x и y получают значения 5 и 10.
- Вызывается конструктор, который выводит значения x и y.

Читать полностью…

Senior Java Developer

Double-brace инициализация

Двойные фигурные скобки используются для инициализации объектов, например коллекций. Это позволяет создавать объект и инициализировать его в одной строке кода.

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

Читать полностью…

Senior Java Developer

«Входить в IT неспеша» или как стать Middle Java Backend разработчиком минуя ступень Junior

Статья о том, как шаг за шагом при дефиците свободного времени обучиться и устроиться на работу сразу Middle Java разработчиком перескочив через Junior ступеньку, основанная на личном опыте, и о том, как мне это помогло, когда сразу после трудоустройства пришлось тянуть проект практически в solo.

Смотреть статью

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Почему нельзя объявить метод интерфейса с модификатором final или static?

Причина, по которой в интерфейсах нельзя объявлять методы с модификаторами final или static заключается в следующем:

Final методы предназначены для того, чтобы классы-наследники не могли их переопределить. Но если метод интерфейса объявить финальным, это нарушит саму суть интерфейсов - предоставить общий набор методов для реализации в других классах.

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

Читать полностью…

Senior Java Developer

Метод Character.isWhitespace()

Метод Character.isWhitespace() используется для проверки, является ли символ пробельным.
Метод принимает символ и возвращает булево значение.

Считается, что символ является пробельным если он соответствует одному из следующих значений: пробел (' '), табуляция (\t), перевод строки (\n), перевод страницы (\f), возврат каретки (\r).

Метод удобно использовать для проверок вводимых данных, разбора строк и т.д.

#это_база

Читать полностью…

Senior Java Developer

Метод Character.toString()

Метод Character.toString() используется для преобразования символа (char) в строку (String).

Метод принадлежит классу Character и полезен, когда нужно конвертировать символ в строку для вывода или конкатенации.

#это_база

Читать полностью…
Subscribe to a channel