seniorjavist | Unsorted

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

-

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

Subscribe to a channel

Senior Java Developer

Retrofit

Retrofit — это популярная библиотека Java, которая упрощает взаимодействие с REST API. Она позволяет легко создавать HTTP-запросы, получать и обрабатывать ответы, а также сериализовать и десериализовать данные.

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

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

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

Senior Java Developer

Алгоритм Бойера-Мура-Хорспула

Данный алгоритм также известен под названием алгоритм Бойера-Мура-Хорспула. Процедура алгоритма очень простая. Сначала строится таблица смещений для каждого символа. Затем исходная строка и шаблон совмещаются по началу, сравнение ведется по последнему символу.

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

И так далее, пока не шаблон полностью не совпадет с подстрокой исходной строки, или не будет достигнут конец строки.

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

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

Senior Java Developer

Что такое Apache Commons Net?

Apache Commons Net — это библиотека Java с открытым исходным кодом, которая реализует клиентскую часть многих основных интернет-протоколов.

Цель библиотеки:
— Предоставить базовый доступ к протоколам, а не высокоуровневые абстракции.
— Сделать разработку сетевых приложений Java более простой и удобной.

Как использовать Apache Commons Net?

1. Добавьте библиотеку в свой проект.
2. Включите необходимые пакеты в ваш код.
3. Создайте экземпляр класса, соответствующего нужному протоколу.
4. Используйте методы класса для взаимодействия с протоколом.

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

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

Senior Java Developer

Вакансии для тех, кто хочет работать на море 🌊

Приглашаем специалистов DevOps, Java, JavaScript на открытые вакансии IT-офиса Сбера в Сочи. Мы создаём и развиваем банковские продукты для компаний в Индии, внедряем лучшие практики банкинга на индийский рынок.

У тебя есть уникальная возможность поучаствовать в построении автоматизированной банковской системы с нуля. Система состоит из набора модулей:

✔️ Ядро
✔️ Бухучёт и отчетность
✔️ Интернет-банк и антифрод-система
✔️ Кредитные продукты и не только

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

Часть команды в России, часть в Индии. А это значит, что у тебя есть отличная возможность поработать в международной команде!

Откликайся на вакансии по ссылке 😉

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

Senior Java Developer

Как Java-разработчику сделать прорыв в карьере в 2024?

Прийти на обновленную программу онлайн-курса «Java Developer. Professional» от OTUS! 

✅ Обучение также подходит опытным разработчикам на других языках

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

Выбирайте хард уровень домашних заданий 

💻  Хотите протестировать учебный процесс заранее? Регистрируйтесь на открытый урок «Знакомство с Micronaut» 11 апреля

➡️ Не упусти свой шанс — пройди вступительный тест, и проверь свой уровень: 
https://otus.pw/qKcO/?erid=LjN8KQ89R

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

Senior Java Developer

Метод Double.compare()

Метод Double.compare() является более точным способом сравнения значений типа double, чем операторы == или !=. Это связано с тем, что числа с плавающей точкой могут быть не точными. Метод Double.compare() используется для сравнения двух значений типа double. Он возвращает целое число, указывающее на отношение между двумя значениями:

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

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

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

Senior Java Developer

Найдите ошибку в коде

Ошибка в том, что оператор try не имеет соответствующего оператора catch. Оператор try используется для обработки исключений, но в этом случае он не обрабатывает ни одного исключения. Поэтому при возникновении исключения в блоке try будет получена ошибка:

Error:(2, 13) java: exception handling mismatch

Чтобы исправить ошибку, необходимо добавить оператор catch для обработки исключения.


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

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

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

Senior Java Developer

Скажите что-то на карьерном

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

erid:2VtzqvMQRFa
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673

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

Senior Java Developer

Java-разработчик в Трекер
Россия и хабы
middle+/senior/Team и Tech Lead
Гибрид и удаленка (обсуждаемо)

Яндекс Трекер — это сервис для совместной работы и организации процессов в компании. Его используют все команды внутри Яндекса, а также тысячи больших и маленьких компаний вне его. Бэкенд Трекера — сложная высоконагруженная отказоустойчивая система из множества компонентов. Мы активно развиваемся, поэтому ищем опытного бэкенд-разработчика.

Какие задачи вас ждут:
- Проектировать архитектуру и разрабатывать продуктовые фичи
- Решать сложные технические задачи, чтобы масштабировать и развивать распределённый высоконагруженный сервис
- Организовывать поиск и построение аналитики по десяткам и сотням миллионов объектов меньше чем за секунду
- Мониторить работу написанного программного обеспечения и оперативно реагировать на проблемы
- Развивать инфраструктуру, инструменты разработки и процессы в команде

Мы ждём, что вы:
- Уверенно знаете Java
- Разбираетесь в классических алгоритмах и структурах данных
- Занимались многопоточным программированием
- Ответственны и аккуратны, способны тестировать собственный код и работать с чужим
- Понимаете, как делать надёжные отказоустойчивые системы

Будет плюсом, если вы:

- Работали с PostgreSQL и MongoDB
- Разрабатывали для *nix
- Писали код на Python или Go

Откликнуться

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

Senior Java Developer

IoC (Inversion of Control)

IoC (Inversion of Control) — это паттерн проектирования, который определяет, что объекты должны зависеть от абстракций, а не от конкретных реализаций, и что объекты должны быть созданы и настроены вне зависимых классов.

В Java IoC часто реализуется с помощью контейнера внедрения зависимостей (Dependency Injection Container, DI container). Контейнер DI отвечает за создание, настройку и предоставление объектов зависимым классам.

В примере на картинке мы используем аннотацию @Autowired для указания контейнеру DI, что класс UserService зависит от объекта Database. Контейнер DI создаст объект Database и присвоит его полю database класса UserService.

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

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

Senior Java Developer

#вопросы_с_собеседований
Объясните, как работает Java Memory Model и как это влияет на синхронизацию и параллельное выполнение в многопоточных приложениях Java

Java Memory Model (JMM) определяет, как потоки в Java взаимодействуют через общую память. Важные аспекты JMM включают понятия 'видимости' и 'упорядоченности'. Она гарантирует, что каждое действие в одном потоке перед выполнением следующего действия в другом потоке будет "заметно". Это важно для корректной синхронизации, чтобы избежать проблем, таких как гонки за данные и нарушения последовательности операций. JMM определяет, как и когда изменения, сделанные одним потоком, становятся видимыми для других, что критически важно при проектировании безопасных по отношению к потокам многопоточных приложений.

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

Senior Java Developer

DoubleAccumulator

DoubleAccumulator — это класс из пакета java.util.concurrent.atomic, который представляет собой атомарный аккумулятор для значений типа double. Он используется для накапливания значений типа double в потокобезопасном режиме.

DoubleAccumulator имеет следующий конструктор:

DoubleAccumulator(doubleBinaryOperator accumulatorFunction, double initialValue)


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

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

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

Senior Java Developer

LambdaMetafactory

LambdaMetafactory — это класс в Java, который используется для создания объектов функциональных интерфейсов.

Как работает LambdaMetafactory:

1. LambdaMetafactory используется для создания CallSite, который представляет собой фабричный метод, возвращающий обработчик целевого метода.
2. Обработчик метода — это реализация функционального интерфейса, которая использует invokeExact для вызова целевого метода.
3. Если в лямбда-выражении есть захваченные переменные, то invokeExact принимает эти переменные как фактические параметры.
4. В Oracle JRE 8 metafactory динамически генерирует Java-класс, используя ObjectWeb Asm, который и создает класс-реализацию функционального интерфейса.

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

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

Senior Java Developer

Уникальный сервер для любых задач в Амстердаме за 2$ в месяц

1 Gb RAM / 1 core CPU / 10 Gb NVMe - 2$ в месяц
https://www.vdsina.com/ru/pricing/standard

- Уникальная фиксированная цена в долларах США, которая не будет меняться
- Компания зарегистрирована в Дубае
- Оплата с рублёвой карты, криптой, иностранной картой через Stripe
- Готовые шаблоны с Outline, WireGuard, IPsec
- Подключение к сети интернет — 10 Гбит/сек
- Доступны все популярные сайты, включая ChatGPT, Netflix

Почему я должен верить компании? VDSina работает с 2014 года и сейчас обслуживает более 40 000 серверов. Сомневаетесь? Вот чат в телеграме — задавайте вопросы другим пользователям: /channel/vdsina

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

Senior Java Developer

Formatter

Formatter — это класс, который используется для форматирования вывода данных. Formatter поддерживает форматирование следующих типов данных:
— Примитивные типы: int, long, float, double, char, boolean
— Объекты: String, Date, Calendar, BigDecimal.

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

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

Senior Java Developer

Hystrix

Hystrix — это библиотека Java, предназначенная для обеспечения отказоустойчивости и устойчивости к задержкам в распределенных системах.

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

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

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

Senior Java Developer

❓Как разработчику повысить свой уровень программирования?

Начните с бесплатного практического урока «Создание словаря, 1-3 способ» от OTUS, где вы вместе с опытным экспертом:

- реализуете популярную структуру данных «ассоциативный массив» для хранения пар (ключ, значение);
- рассмотрите три способа решения этой задачи и сравните их эффективность;
- реализуете способы односвязного списка, динамического массива и отсортированного массива методом вставки.

Занятие пройдёт 1 апреля в 20:00 мск в рамках курса «Алгоритмы и структуры данных». Доступна рассрочка на обучение!

👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/nLvp/?erid=LjN8KUvNF

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

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

Senior Java Developer

Resilience4j

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

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

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

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

Senior Java Developer

Класс java.io.OutputStream

Класс java.io.OutputStream является абстрактным суперклассом для всех классов, представляющих выходной поток байтов в Java. Он входит в состав пакета java.io и отвечает за отправку байтов данных в определенное хранилище (sink).

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

Основные методы:
write(byte b): записывает один байт в поток.
write(byte[] b): записывает массив байтов в поток.
write(byte[] b, int off, int len): записывает часть массива байтов в поток.
flush(): сбрасывает буфер потока, принудительно отправляя данные в хранилище.
close(): закрывает поток и освобождает ресурсы.

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

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

Senior Java Developer

#вопросы_с_собеседований
Как поведёт себя уже инстанциированный итератор для collection, если вызвать collection.remove()?

При следующем вызове методов итератора будет выброшено ConcurrentModificationException.

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

Senior Java Developer

Узнай первым о GitVerse – платформе для работы с исходным кодом

29 марта в 10:00 на онлайн-презентации «GitVerse: открой вселенную кода» СберТех расскажет о новой функциональности GitVerse. Он представит дорожную карту развития и анонсирует инструменты для повышения продуктивности разработчиков.

GitVerse – полностью российский сервис, который позволяет бесплатно создавать проекты с открытым и закрытым кодом, приглашать новых участников и общаться с единомышленниками в ИТ-сообществе.

О чем узнают гости мероприятия:
· Тренды разработки и роль открытого ПО в современном ИТ
· Возможности GitVerse и планы развития
· GigaCode – AI-помощник разработчика (AI, artificial intelligence — искусственный интеллект)
· Участие комьюнити в проекте
· Пакет облачных сервисов и его преимущества для разработчиков
· Обзор интересных репозиториев на GitVerse
· Реальные кейсы разработки и оптимизации с помощью GitVerse
· Общение в прямом эфире

Регистрируйся прямо сейчас.

Ждем тебя на мероприятии!

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

Senior Java Developer

Аннотация @Entity

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

Чтобы класс был объявлен сущностью, необходимо добавить к нему аннотацию @Entity. Аннотация @Entity сообщает фреймворку JPA, что класс Customer является сущностью и должен быть сохранен в базе данных.

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

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

Senior Java Developer

Маркер Remote

Маркер удаленности — это модификатор доступа, используемый для обозначения класса, интерфейса или метода как доступного только для удаленных объектов. Это означает, что объекты этого типа могут быть доступны только через удаленный вызов процедуры (RPC).

Класс MyRemoteClass теперь является удаленным классом, и его методы могут вызываться только удаленными объектами.

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

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

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

Senior Java Developer

StampedLock

StampedLock — это механизм блокировки, представленный в Java 8. Он отличается от других механизмов блокировки, таких как synchronized и ReentrantLock, тем, что использует концепцию меток. Метка — это целое число, которое используется для отслеживания состояния блокировки.

StampedLock поддерживает три режима блокировки:

— Обычный режим (READ): в этом режиме несколько потоков могут одновременно читать данные, защищенные блокировкой.
— Редактирование (WRITE): в этом режиме только один поток может получить доступ к данным для редактирования.
— Оптимистическая блокировка (OPTIMISTIC): в этом режиме поток может получить доступ к данным для чтения, не блокируя другие потоки. Если данные были изменены другим потоком до того, как поток закончил чтение, поток получит ошибку.

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

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

Senior Java Developer

#вопросы_с_собеседований
Как работает механизм 'Double Brace Initialization' и какие потенциальные проблемы он может создать?

'Double Brace Initialization' в Java - это техника инициализации объектов, которая использует двойные фигурные скобки. Первая скобка создает анонимный внутренний класс, а вторая - блок инициализации этого класса. Этот метод часто используется для удобной инициализации коллекций. Однако он может привести к утечкам памяти, поскольку анонимный внутренний класс держит неявную ссылку на внешний класс, что может помешать сборке мусора во внешнем классе. Кроме того, он увеличивает размер класса и может влиять на производительность.

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

Senior Java Developer

☕️ Самые интересные доклады с YaTalks — уже на Яндекс Музыке!

Стартовал новый сезон YaTalks: ReRun — подкаст избранных докладов с самой большой технологической конференции Яндекса. Мы собрали их в Техномарафон — совместный спецпроект с командой Яндекс Музыки. Техномарафон будет идти 3 недели, а всего вас ждёт 28 выпусков.

На Техномарафоне расскажем, как создавать меняющие мир технологии, не отставать от быстрого развития индустрии и управлять командами опытных, независимых и творческих инженеров. Например:

🔴 Ускоритель в масштабе планеты: как инженеры управляют временем
🔴 Дебаты: AI недооценён или переоценён?
🔴 Человек и проект: как создаётся технологическое чудо
🔴 Свой среди чужих: как выжить в интернациональных командах?

Добавляйте Техномарафон в избранное на Яндекс Музыке — скоро выложим ещё много крутых выступлений!

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

Senior Java Developer

Из джуна в мидла вместе с лидером* российского ИТ-рынка — Холдингом Т1 🚀

Открытые школы Т1 — это уникальная возможность для быстрого роста в ИТ. Внутри два трека: образовательный ИТ-интенсив + карьерный в формате offer weeks в Т1.

🤚 Поможем прокачать скилы для развития внутри профессии, если ты:
- имеешь опыт работы java-разработчиком от года
- хочешь присоединиться к команде Т1.
Лучшим назначим интервью и направим оффер!

В программу интенсива входит:
🔹Spring framework
🔹Docker
🔹Синхронное и асинхронное взаимодействие, брокеры сообщений 🔹Паттерны, SOLID

📚 Формат: онлайн и по вечерам (8 часов в неделю на вебинары и практику).
Длительность — 1 месяц, стартуем в конце марта!

🏳️ Подай заявку до 26 марта.

*По версии CNews Analytics 2022, TAdviser 2021 и RAEX 2023

Реклама. ООО "Т1". ИНН 7720484492.

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

Senior Java Developer

SocketHandler

SocketHandler — это класс в Java, который используется для отправки сообщений журнала на сервер журнала. Он наследуется от класса Handler и реализует интерфейс StreamHandler.

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

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

Senior Java Developer

FileHandler

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

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

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

Senior Java Developer

Подборка горячих вакансий в Ozon для Senior Java-разработчиков

🔵 Старший разработчик Java, Верхний поиск

🔵 Старший разработчик Java, GPU Инфраструктуры

🔵 Старший разработчик Kotlin, ML Инфраструктура

Почему нужно идти в Ozon: здесь соединяется мир разработки сложных вычислительных систем с миром Data Science.

Что предлагают:
Достойный уровень зп
Удалёнку из любой точки / гибрид / офис
Возможность делать классные продукты на рынке e-com
Систему менторства, адаптации, обучения
Сильное экспертное коммьюнити: митапы, блоги, конференции и подкасты. Поддержку развития профессионального бренда сотрудников со стороны DevRel-ов.

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