seniorjavist | Unsorted

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

-

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

Subscribe to a channel

Senior Java Developer

16–17 мая ВСК проводит One Day Offer.

Если ты разработчик или системный аналитик уровня middle и выше, регистрируйся https://onedayoffer.vsk.ru до 15:00 15 мая.

Пройди онлайн-собеседование в компании из золотого рейтинга Forbes и получи офер в тот же день. Выбирай сам формат будущей работы и пользуйся ДМС с первого дня.

Создавай лучшие InsurTech-продукты страны в одной из наших Agile-команд.

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

Senior Java Developer

Приглашаем на Vertis Java Meetup

Обсудим Java-разработку в Яндекс Путешествиях и Недвижимости:

🔸 Михаил Черноскутов, старший разработчик платформенных сервисов в Путешествиях. Покажет внутренности связки Java + gRPC + Netty, а ещё разберёт грабли, которые можно собрать, если неправильно готовить gRPC

🔸 Роман Косарев, руководитель направления разработки в Недвижимости. Расскажет, как синхронное API Недвижимости прошло эволюцию от REST до GraphQL Federation

🔸 Екатерина Рыбалка, разработчик счастья путешественников в Путешествиях. Объяснит, как ребята пришли к Agile-методикам, чтобы итеративно декомпозировать и реализовывать фичи и задачи, и что из этого получилось

Vertis Java Meetup пройдёт в Екатеринбурге 25 мая, будет онлайн-трансляция. Зарегистрироваться можно здесь.

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

Senior Java Developer

Яндекс приглашает студентов и начинающих разработчиков на Young Con — фестиваль для тех, кто интересуется карьерой в IT

• 6000 участников
• Свыше 10 часов нетворкинга и активностей
• 30 топ-менеджеров расскажут о внутренней кухне больших IT-компаний и дадут советы, как начать карьеру в одной из команд
• Знакомство с технологиями Яндекса
• 9 тематических «миров» — интерактивных стендов, где участники смогут узнать про сервисы и карьерные возможности, которые дает работа в IT-компании.

У участников будет возможность в будущем попасть на стажировку в Яндекс, ведь прямо на фестивале пройдут экспресс-собеседования.

На фестивале также пройдет «Баттл вузов» — финал турнира по спортивному программированию между студентами. Команда-победитель разделит между собой призовой фонд в размере 1 млн рублей. Завершится мероприятие концертом музыкальных групп The Hatters и ХЛЕБ.

Фестиваль пройдет 27 июня в Live Arena. Принять участие в нем можно очно или онлайн — для этого необходимо заполнить форму на сайте.

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

Senior Java Developer

Хочешь практиковать Java на реальных задачах? В поисках оригинального контента, а не копипаста из других источников?

👉 Заходи на новый канал 👈

Топовые задачи:
— Много вопросов по concurrency и jvm
— Разбираем стандартные ошибки и их решения
— Оптимизируем код
— Best practices
— Задачи с реальных собеседований
— Разный уровень сложности
— Подробный разбор каждого решения

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

Автор канала – Java-эксперт, более 10 лет в разработке. Опытный Lead dev и тимлид группы девелоперов. Работал с различными базами данных – Relational databases, NoSQL databases, Caching systems, Full-Text Search engines, Big Data systems

👉 Подписывайся и попробуй решить последнюю задачу! /channel/java_interview_tasks

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

Senior Java Developer

Экземплярный инициализатор

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

#для_продвинутых

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

Senior Java Developer

Сериализация объектов

Сериализация объектов - это процесс преобразования объекта в поток байтов, который может быть сохранен на диске или передан по сети, а затем восстановлен в исходный объект. Для того, чтобы класс можно было сериализовать, необходимо реализовать интерфейс Serializable.

Как можно видеть из примера, объекты, реализующие интерфейс Serializable, могут быть сериализованы в файл и затем десериализованы обратно в исходный объект.

#для_продвинутых

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

Senior Java Developer

Паттерн проектирования Observer

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

#для_продвинутых

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

Senior Java Developer

🔥 Это база с 1700 вопросами с собеседований на Java разработчика. Фишка в том, что просчитана вероятность с которой вопрос буден задан и есть примеры ответов. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам 😏

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

Senior Java Developer

Прокси-объект

Прокси-объект (Proxy Object) — это объект, который действует как промежуточный слой между клиентским кодом и реальным объектом. Прокси-объект позволяет выполнять дополнительные действия перед или после вызовов методов реального объекта, а также контролировать доступ к этим методам.

Прокси-объекты в Java реализуются с помощью интерфейсов и динамического создания классов во время выполнения. Для создания прокси-объекта в Java существует два основных способа: с использованием JDK Proxy и с использованием библиотеки CGLIB.

#для_продвинутых

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

Senior Java Developer

Конкатенация

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

#для_начинающих

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

Senior Java Developer

Что такое «IS-A» отношение?

«IS-A» отношение относится к понятию наследования и полиморфизма в объектно-ориентированном программировании. Оно также называется «является типом» или «является подтипом». Это отношение указывает на то, что один класс является подклассом другого класса.

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

#для_продвинутых

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

Senior Java Developer

ScheduledExecutorService

ScheduledExecutorService — это интерфейс в Java из пакета java.util.concurrent, который предоставляет возможность планирования и выполнения задач с задержкой или периодически.

Основные реализации ScheduledExecutorService:

ScheduledThreadPoolExecutor — это конкретная реализация ScheduledExecutorService, предоставляемая в стандартной библиотеке Java. Она является потокобезопасной реализацией и использует пул потоков для выполнения задач.

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

#для_начинающих

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

Senior Java Developer

ConcurrentHashMap

ConcurrentHashMap — это класс из пакета java.util.concurrent, который представляет собой реализацию хэш-таблицы, спроектированную для поддержки параллельных операций чтения и записи без необходимости блокировки всей структуры данных.

#для_начинающих

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

Senior Java Developer

Что такое «thread-safe»?

«Thread-safe» (безопасность в многопоточной среде) означает, что определенный код или объект может корректно и безопасно использоваться в многопоточной среде, где несколько потоков одновременно могут обращаться к этому коду или объекту.

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

#для_продвинутых

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

Senior Java Developer

ReentrantLock

ReentrantLock - это класс в Java, который предоставляет механизм блокировки с возможностью повторного входа.

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

#для_начинающих

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

Senior Java Developer

В чём разница между >> и >>>?

Операторы >> и >>> используются для выполнения побитовых сдвигов над числами.

Оператор >> выполняет арифметический сдвиг вправо. При этом, если число положительное, то сдвиг вправо на n битов эквивалентен делению числа на 2^n. Однако при работе с отрицательными числами, оператор >> выполняет расширение знака, то есть заполняет старшие биты таким же значением, как старший бит исходного числа.

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

#для_начинающих

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

Senior Java Developer

ExecutorService

ExecutorService — это интерфейс в Java, который предоставляет высокоуровневый способ управления выполнением задач (потоков) в фоновом режиме. Он является частью пакета java.util.concurrent и предоставляет абстракцию над управлением потоками выполнения, что облегчает создание и управление потоками в многозадачных приложениях.

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

#для_продвинутых

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

Senior Java Developer

Интерфейс Enumeration

Интерфейс Enumeration — определяет методы, с помощью которых вы можете перечислить (получить по одному) элементы в коллекции объектов.

Этот устаревший интерфейс был заменён Iterator. Хоть и не совсем, но Enumeration считается устаревшим для нового кода. Однако он используется некоторыми методами, определёнными такими устаревшими классами, как Vector и Properties, используется другими API классами и сейчас широко используется в коде приложений.

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

Senior Java Developer

Инициализаторы

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

В Java есть два типа инициализаторов: инициализатор экземпляра и статический инициализатор.

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

#для_продвинутых

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

Senior Java Developer

Статический инициализатор

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

#для_продвинутых

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

Senior Java Developer

Агрегация

Агрегация — это отношение между классами, когда один класс содержит ссылки на объекты другого класса. Это также называется «композицией» или «составным объектом». Важно отметить, что агрегация является одним из способов управления отношениями между классами в ООП.

Примером агрегации может быть, например, класс «Университет», который содержит коллекцию объектов класса «Студент». В этом случае, «Университет» агрегирует (содержит) множество объектов «Студент». Важно, чтобы объекты «Студент» оставались независимыми и могли существовать отдельно от объекта «Университет».

#для_продвинутых

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

Senior Java Developer

Метод ordinal() в Enum

Метод ordinal() является частью класса Enum. Класс Enum используется для создания типов данных, представляющих ограниченное множество значений, таких как перечисления (enumerations). Метод ordinal() возвращает порядковый номер (индекс) конкретного элемента перечисления в объявленном порядке.

#для_начинающих

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

Senior Java Developer

Фундаментальное руководство по пакетам в Java

Java-пакеты реализуют так называемое пространство имен (namespace), позволяющее использовать в проекте файлы с одинаковыми именами.

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

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

Senior Java Developer

serialVersionUID

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

Проблема, которую serialVersionUID решает, связана с обеспечением совместимости при сериализации. Если класс был сериализован с определенной версией serialVersionUID, то при десериализации Java будет проверять, соответствует ли текущая версия класса версии, сохраненной в сериализованных данных. Если версии не совпадают, может быть брошено исключение InvalidClassException, указывающее на несовместимость версий.

#для_продвинутых

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

Senior Java Developer

Что такое ThreadGroup?

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

ThreadGroup предоставляет некоторый уровень организации и управления, но в большинстве современных приложений управление потоками осуществляется с использованием более высокоуровневых конструкций, таких как классы из пакета java.util.concurrent, которые предоставляют более гибкие и безопасные средства для работы с параллельным исполнением.

#для_продвинутых

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

Senior Java Developer

Декартово произведение

Декартово произведение (cartesian product) в математике означает комбинацию всех возможных пар элементов из двух множеств. В Java это понятие может использоваться для описания ситуации, когда необходимо создать все возможные комбинации элементов из двух или более наборов данных.

Например, представьте, что у вас есть два множества: A = {1, 2} и B = {a, b}. Декартово произведение этих множеств будет: {(1, a), (1, b), (2, a), (2, b)}.

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

Для решения проблемы декартова произведения можно использовать вложенные циклы, рекурсию или специализированные библиотеки, такие как Apache Commons Collections или Stream API, чтобы более эффективно генерировать и обрабатывать комбинации элементов из разных множеств.

#для_продвинутых

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

Senior Java Developer

Что такое Executor?

Понятие Executor относится к части библиотеки java.util.concurrent, которая предоставляет управление и выполнение задач в многопоточных приложениях. Этот интерфейс и связанные с ним классы предоставляют абстракцию для управления выполнением потоковых задач.

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

#для_начинающих

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

Senior Java Developer

ThreadPool

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

#для_начинающих

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

Senior Java Developer

Что нового в GitVerse

На онлайн-презентации «GitVerse: открой вселенную кода» СберТех рассказал об обновлениях платформы. Cреди них – CI/CD-инструменты, которые позволят ускорить и упростить разработку. Делимся подробностями:

▪️ Инструменты помогут автоматизировать сборку кода и процессы поставки. Можно воспользоваться уже написанными скриптами сборки и перенести свои проекты с Git-репозиториев в один клик.

▪️ Технология оповещения о новых событиях на сервере (вебхуки) позволит реализовать еще больше сценариев автоматизации.

▪️ Появилась возможность вызывать сторонние сервисы через API по событиям в GitVerse. Например, при определенных событиях в репозитории можно запустить сторонний сборочный конвейер или отправить уведомление в мессенджер.

Регистрируйтесь на GitVerse и протестируйте сами 😉

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

Senior Java Developer

❓Хотите прокачать скиллы в автоматизации тестирования на Java?

👉 Ждем вас на бесплатном практическом уроке «Модульное и интеграционное тестирование при помощи Spring Boot» от OTUS.

На вебинаре разберем:
- модульное тестировании при помощи Spring Boot;
- интеграционное тестирование при помощи Spring Boot;
- написание тестов на отдельные фрагменты SUT. 

👉 Для участия зарегистрируйтесь https://otus.pw/MpW0/?erid=LjN8K732H

⏰ Встречаемся 24 апреля в 20:00 мск в рамках курса «Java QA Engineer. Professional».

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

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