seniorjavist | Unsorted

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

-

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

Subscribe to a channel

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

CyclicBarrier

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

CyclicBarrier представляет собой барьер, который блокирует выполнение всех потоков до тех пор, пока все потоки не достигнут этой точки. Как только все потоки достигли барьера, он разблокируется, и все потоки выполняют свою работу.

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

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

Senior Java Developer

В Java как реализуется принцип "fail-fast" в контексте коллекций и как это отличается от подхода "fail-safe"?

В Java "fail-fast" система немедленно выдает ConcurrentModificationException, если обнаруживает, что коллекция была изменена во время итерации, кроме изменений через сам итератор. Напротив, "fail-safe" коллекции используют механизмы, такие как копирование коллекции или блокировки, чтобы обеспечить безопасное поведение во время итераций, даже если коллекция изменяется, предотвращая ConcurrentModificationException.

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

Senior Java Developer

DelayQueue

DelayQueue — это очередь, которая хранит элементы в порядке их задержки. Элементы в очереди извлекаются только после истечения их задержки.

DelayQueue реализует интерфейс BlockingQueue, поэтому элементы могут извлекаться из нее только блокирующими методами take() или poll(long timeout, TimeUnit unit).

Элементы DelayQueue должны реализовывать интерфейс Delayed. Интерфейс Delayed определяет два метода:

getDelay(): возвращает оставшуюся задержку элемента в миллисекундах.
isExpired(): возвращает true, если задержка элемента истекла.

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

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

Senior Java Developer

Что такое BufferedInputStream?

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

Как работает BufferedInputStream?

Когда создается BufferedInputStream, он создает внутренний буфер, размер которого можно указать при создании. Затем он читает данные из базового потока в буфер. Когда приложение запрашивает чтение данных из BufferedInputStream, он сначала читает их из буфера. Если буфер пуст, BufferedInputStream читает данные из базового потока и сохраняет их в буфере.

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

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

Senior Java Developer

Всё, что будет на митапе, останется на митапе 💥

24 апреля в 19:00 встречаемся на Alfa Backend Stories #3 в Москве и онлайн.

Обсудим ИИ и другие инструменты, которые помогают в написании кода:

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

Дмитрий Сошников, технический руководитель лаборатории генеративного ИИ Школы дизайна НИУ ВШЭ и консультант Yandex Cloud, расскажет о современном искусственном интеллекте в облаке и покажет, как YandexGPT может использоваться разработчиками для решения прикладных задач

Антон Гращенков, в режиме реального времени покажет, как локально установить и настроить ИИ, а также как с его помощью писать код

Обещаем не стирать вам память, если вы придёте в костюме, в образе агентов фильма «Люди в чёрном»

Регистрация

Еще больше полезного в комьюнити: @alfabackend

erid: LjN8KawpU
Реклама. АО «Альфа-Банк». ИНН 7728168971.

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

Senior Java Developer

🚀 Участвуй в True Tech Hack от МТС и поборись за общий призовой фонд в 1 500 000 рублей. Регистрируйся.

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

🏠 Трек 1. Улучшение клиентского опыта витрины МТС Live для пользователей с особыми потребностями
⭐ Трек 2. Разработка голосового управления для МТС Финтех на основе искусственного интеллекта для людей с ограниченными возможностями

Как пройдет True Tech Hack:
🔸 26 апреля – открытие хакатона и Q&A-сессия
🔸 27 апреля–12 мая – чекпоинты с экспертами
🔸 12 мая – окончание приема проектов
🔸 14 мая – полуфинал, защита лучших решений и объявление финалистов
🔸 17 мая – финал в Москве

True Tech Hack – твой шанс получить новый опыт, выиграть приз и сделать наш мир доступней и удобней для всех. Регистрируйся на хакатон до 25 апреля по ссылке.

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

Senior Java Developer

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

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

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

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

Senior Java Developer

Разбираемся с MavenGate, новой атакой на цепочку поставок для Java и Android-приложений

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

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

Senior Java Developer

therapi-runtime-javadoc - небольшая библиотека, позволяющая читать Javadoc из Java-кода во время выполнения.

https://github.com/dnault/therapi-runtime-javadoc

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

Senior Java Developer

Больше, чем просто разработчик: начните думать как архитектор ПО на курсе от Слёрм 🤔

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

Пиши, как разработчик, думай, как архитектор — этому учит Слёрм на своём курсе «Архитектура приложений».

🧐 Чему вы научитесь?

🟠Писать чистый и понятный код
🟠Проектировать разработку ПО
🟠Улучшать качество кода с помощью алгоритмов и структур данных

В конце курса вы сможете защитить итоговый проект и получить сертификат.

🔮 Кто будет наставником?

Спикеры курса: Александр Вагнер, Senior Software Engineer в Bidease
Более 10 лет в IT, построил с нуля компанию и платформу Torrow.

Вячеслав Гагарин, Старший разработчик ПО в Retail Rocket,
более 7 лет опыта в IT.

☕️Как проходит обучение?

Курс длится 3 месяца, все материалы к нему будут открываться постепенно. Наставники будут поддерживать вас на протяжении всего обучения: отвечать на вопросы в чате студентов и проводить онлайн-встречи.

Старт 29 апреля. Присоединяйтесь!

Реклама ООО «Слёрм» ИНН 3652901451

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

Senior Java Developer

Из джуна в мидла вместе с Холдингом Т1🚀 Приглашаем java-разработчиков в Открытые школы Т1!

🎓 Открытые школы Т1 — это новая карьерная программа для IТ-специалистов, объединяющая обучение без отрыва от работы и offer weeks.

👨‍💻 Для участия необходим опыт работы java-разработчиком от 1 года, а также желание присоединиться к команде Т1.

Т1 занимает 2 место среди крупнейших ИКТ-компаний по версии RAEX 2023 и является партнёром ключевых производителей и разработчиков в сфере ИТ.

В программу входит: spring framework; docker; синхронное и асинхронное взаимодействие, брокеры сообщений; паттерны, SOLID

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

Лучшим назначим интервью и направим оффер!

📌 Подробнее о программе — в карточках внутри поста.

Принимаем заявки до 22 апреля! 🚀

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

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

Senior Java Developer

Сортировка расческой

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

1. Начинаем с шага, равного длине массива.
2. Сравниваем элементы массива, находящиеся на расстоянии шаг друг от друга.
3. Если элемент слева больше, чем элемент справа, то мы их переставляем.
4. Уменьшаем шаг, деля его на 1.3 (или другую константу).
5. Повторяем шаги 2-4, пока шаг не станет меньше 1.

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

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

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.

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

Senior Java Developer

Получить атомное время из интернет-часов

Для получения атомного времени из интернет-часов в Java вы можете воспользоваться классом java.net.URL для выполнения HTTP-запроса к одному из сервисов времени, таким как «time.google.com». Затем вы можете обработать полученный ответ и извлечь атомное время.

Обратите внимание, что формат ответа от сервиса времени может различаться, и вам может потребоваться настроить метод parseAtomicTime для вашего конкретного сервиса. Подобные сервисы могут предоставлять атомное время в разных форматах, таких как ISO 8601 или Unix Timestamp.

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

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

Senior Java Developer

💻Хочешь стать платформенным инженером в IT-компании? 

🚀Тогда онлайн-курс «Инфраструктурная платформа на основе Kubernetes» от OTUS именно для тебя!
Изучи функционал K8s, освой технологию разработки инфраструктурных платформ и сделай свое резюме сильнее. 

🎓Учись у экспертов, погружайся в мир технологий будущего и строй свою успешную карьеру в IT.

👨‍🎓 Здесь ты получишь практические навыки, которые сможешь применить в работе. А практикующие эксперты-преподаватели ответят на твои вопросы в режиме реального времени на вебинарах.

📅Старт нового набора уже 25 апреля. Программа актуализирована, есть рассрочка для оплаты курса.

🔥Пройди короткое вступительное тестирование прямо сейчас, чтобы не только проверить свои знания,  но еще получить специальную цену на обучение и персональную консультацию от менеджера в OTUS: https://vk.cc/cwjVCN?erid=LjN8Ju1GC 

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

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

Senior Java Developer

Кастинг

Кастинг (приведение типов) — это операция, которая позволяет присвоить значение переменной одного типа переменной другого типа.

Существует два типа кастинга:

Расширение типа (widening casting) — это преобразование типа данных меньшей разрядности в тип данных большей разрядности. Например, преобразование типа byte в тип int, short в тип long или char в тип int.

Сужение типа (narrowing casting) — это преобразование типа данных большей разрядности в тип данных меньшей разрядности. Например, преобразование типа int в тип byte, long в тип short или double в тип float.

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

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

Senior Java Developer

Ключевое слово new

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

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

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

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

Senior Java Developer

Интерфейс Function

Функциональный интерфейс Function представляет собой интерфейс, который используется для представления функции, принимающей один аргумент и возвращающей результат. Он является частью пакета java.util.function и был введен в Java 8 для поддержки функционального программирования.

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

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

Senior Java Developer

Что такое цепочка конструкторов?

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

1) В том же классе, используя this().
2) Из базового класса с использованием super().

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

Senior Java Developer

17 мая собираем всех на IT-конференцию МТС True Tech Day.

Наша работа строится на коде, который мы создали из синтеза науки и технологий. Это надёжная и универсальная платформа для разработки продуктов и сервисов.

Каждый участник конференции поучаствует в сессиях от лидеров индустрии, испытает технологии в true labs и получит новые впечатления и эмоции.

Что будет:
→ 5 тематических треков: Main, Development, AI/ML, Cloud, Science
→ 50 спикеров с докладами про архитектуру, облачные платформы, NLP4Code, вероятностное программирование, безопасность контейнеров и другое
→ 10 часов нетворкинга
→ цифровые зоны и digital-интеграции
→ а ещё вечеринка со звездой

Все спикеры и темы уже на сайте. Регистрируйся на True Tech Day. Участие бесплатное

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

Senior Java Developer

База IT с Романом Сакутиным 

Получите всё, что нужно для старта в IT от программиста с 10 летним опытом. Роман превратил легендарный Гарвардский курс в двухдневный трениг для гуманитариев и адаптировал под актуальные технологии. 

Трансляции будут в эти выходные, для всех участников доступные записи, подборки книг и бесплатного материала для самообразования. 
 
Записывайтесь бесплатно - https://ijunior.ru/free-base-it?utm_source=telegain&utm_medium=17042024&erid=LjN8KEWBZ

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

Senior Java Developer

JMapper

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

Простота использования: JMapper имеет простой и понятный API, основанный на аннотациях.
Эффективность: JMapper оптимизирован для производительности и может выполнять преобразования объектов очень быстро.
Гибкость: JMapper поддерживает различные типы преобразований.

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

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

Senior Java Developer

Ehcache

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

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

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

Senior Java Developer

Infinispan

Infinispan — это масштабируемая, высокодоступная платформа для хранения данных типа ключ-значение, написанная на Java и распространяемая под свободной лицензией (Apache License 2.0). Основная область применения Infinispan — распределенный кэш, но также её применяют как KV-хранилище в базах данных типа NoSQL.

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

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

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

Senior Java Developer

Считаешь себя экспертом в IT? Участвуй в «Цифровом марафоне» от Сбера и «Школы 21» и будь на код впереди! Миллион рублей уже ждёт тебя.

В этом масштабном конкурсе ты будешь соревноваться со специалистами по всей России. Тройка лучших поделит в финале в Москве призовой фонд в 1,8 миллионов рублей.

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

Поспеши: 20 апреля — твой последний шанс нажать на кнопку «Хочу участвовать». Переходи на сайт и регистрируйся прямо сейчас!

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