Перед Новым годом все покупают подарки, колоссально повышая нагрузку на платежные системы.
7 декабря в 17:00 Мир Plat.Form (технологический бренд НСПК) проведёт онлайн-митап, на котором расскажет, как бэк-офис подготовился к повышению нагрузки в праздники и ускорил пропускную систему клиринга в 2,5 раза. Чтобы ни один подарок не остался не подаренным🎁
Вместе мы посмотрим, как устроена система, ответственная за проведение расчетов в ПС «Мир», и благодаря чему она справляется с рекордными нагрузками.
А после — заглянем «под капот» и пройдемся по основным методам профилирования и оптимизации кода, которые помогают увеличивать производительность существующих Java-приложений.
Присоединяйся – регистрация по ссылке.
Что такое клиринг и как Тайная служба Деда Мороза профилирует Java-код?
Расскажут Product Owner и ведущий разработчик клиринга платежной системы «Мир» на онлайн-митапе.
🗓 7 декабря в 17:00 (МСК, GMT+3)
Ссылку на трансляцию вам отправят за 1 час до начала.
В программе:
✔ Наталья Азисова — Что. Такое. Клиринг?
Как клиринг реализован в платежной системе «Мир». Как устроена его архитектура. Что сделали для подготовки к повышенной нагрузке системы в Новый год.
✔ Александр Ланцов — Профилируем и ускоряем Java-приложения с помощью async-profiler и JFR на примере клиринга платежной системы «Мир»
Какие улучшения в коде клиринга были сделаны, чтобы оптимизировать производительность системы и какие инструменты для профилирования были использованы.
Общайтесь с участниками митапа и задавайте вопросы спикерам в чате трансляции. Авторы лучших вопросов получат подарки 🎁
Регистрация по ссылке.
Реклама. АО "НСПК". ИНН 7706812159.
Будет ли работать HashMap, если все добавляемые ключи будут иметь одинаковый hashCode()?
Ответ:
Да, будет, но в этом случае HashMap вырождается в связный список и теряет свои преимущества.
Назовите основные классы потоков ввода/вывода.
Разделяют два вида потоков ввода/вывода:
• байтовые - java.io.InputStream
, java.io.OutputStream
;
• символьные - java.io.Reader
, java.io.Writer
.
♨️ Прокачивай свои навыки вместе с Java | Фишки и трюки
Ежедневные порции Java-фишек, полезные советы и трюки от опытных разработчиков.
👉🏼 Присоединиться
🔧В большинстве случаев Gradle используется в командах для довольно несложных задач и только для Kotlin-проектов, java. Между тем, он является очень мощным инструментом разработки для DevOps.
⚡30 ноября в 19.00 (мск) приглашаем на открытый урок курса “Kotlin Backend Developer Professional” в OTUS
📌На уроке обсудим:
- как выполнять сборку проектов, содержащих компоненты на C/C++, Rust, Go и др. языках;
- как автоматически генерировать исходники с дальнейшей их компиляцией;
- извлекать файлы из репозиториев для дальнейшей обработки;
- разрабатывать кастомные плагины;
- гибко управлять версиями;
- собирать докер-образы.
👉Регистрация для участия https://otus.pw/4za1/?erid=LjN8KNbZN
После урока вы сможете продолжить обучение, поступив в группу курса по специальной цене. Возможны разные способы и рассрочка платежа.
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Разница между загрузкой и инициализацией классов в Java на любопытном примере
Смотреть статью
Тинькофф проведет первый Java-митап в Минске ☕️
Для первой встречи с комьюнити ребята подготовили три крутых доклада:
— разберем новую фичу Project Loom — посмотрим, как новые потоки влияют на код и на поведение самого приложения;
— расскажем об успехах и факапах, которые бывают у разработчиков;
— обсудим, есть ли жизнь после тимлидства.
После докладов будет неформальный нетворкинг!
📆 Tinkoff Java Meetup, 7 декабря, пространство «Бетон». Не забудьте зарегистрироваться и позвать с собой коллег.
erid:2VtzqxB99Yu
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
CompletableFuture
CompletableFuture — это класс в Java, введенный в Java 8, который представляет собой асинхронную задачу, которая будет выполнена в будущем и возвращает результат. CompletableFuture предоставляет множество методов для работы с асинхронными задачами, комбинирования их и управления их выполнением.
Основные возможности CompletableFuture включают:
— Вы можете запустить задачу асинхронно и продолжить выполнение кода без блокировки.
— CompletableFuture позволяет комбинировать результаты нескольких задач, выполняя определенные действия при завершении каждой задачи.
— Вы можете указать обработчики ошибок для обработки исключений, возникающих во время выполнения задачи.
— Вы можете блокировать выполнение кода и ждать завершения задачи.
#для_продвинутых
👉 Пройдите тест на знание основ алгоритмом и оцените свой уровень. Тест подходит для любого языка программирования.
💪 Сможете сдать – получите запись мастер-класса по алгоритмам повышающий ваш уровень.
📌 Еще больше полезных знаний ждет вас на онлайн-курсе «Алгоритмы и структуры данных» в OTUS
🎁 Черная пятница в OTUS! Успейте получить скидку на курс!
Возможна оплата в рассрочку!
👉 Пройти тест: https://otus.pw/UIwN/?erid=LjN8KCmRE
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
JVM internals
Статья объясняет внутреннюю архитектуру виртуальной машины Java (JVM).
Смотреть статью
🥶 Забудь о Web2 Программировании: Переходи на Web3 и Зарабатывай От $60,000!
Если ты разработчик, но до сих пор не в теме Web3, то упустил множество возможностей. Middle Web3 разработчики уже зарабатывают от $5,000 до $8,000 в месяц!
🔎 Что такое Web3 в двух словах, и как стать мастером блокчейн-разработки?
🔎 Какие перспективы ждут именно тебя на рынке Web3, учитывая твой текущий стек?
🔎 Вакансии, зарплаты и требования к блокчейн-разработчикам: разберем на реальных примерах с рынка.
🔎 Как за 2 года увеличить доход до $5,000+ и стать Middle в Web3?
🔎 Апгрейд: как стать более востребованным, не меняя текущий стек?
✈️ И даже поделимся секретами релокации и работы в международной компании!
🗺 Построим личный роадмеп и разберем все это на 30-минутной бесплатной консультации:
Как действующему программисту расширить стек до Web3 и стать блокчейн-разработчиком на Solidity, увеличив доход в $ за несколько месяцев!
👨💼 Кто проводит?
Рекрутеры Crypton Studio — крупнейшей студии блокчейн-разработки в Европе (6 лет на рынке, более 160+ сотрудников, в числе которых 63% разработчиков, огромное портфолио из более чем 100 успешно реализованных проектов для клиентов из 20 стран). Они запустили новый проект MarniD и телеграм-канал, где можно учиться на их опыте!
Места на консультацию ограничены
Если ты действующий разраб, то переходи на сайт и оставляй заявку — ссылка
Команда свяжется с тобой и забронирует слот на Zoom! Узнай о своих возможностях на рынке будущего!
Узнаем количество файлов в папке
В данном примере мы задаем путь к папке, получаем список файлов в этой папке с помощью метода listFiles()
, а затем выводим количество файлов в папке с помощью свойства length
массива файлов.
Оцените количество памяти на хранение одного примитива типа byte в ArrayList?
ArrayList основан на массиве, для примитивных типов данных осуществляется автоматическая упаковка значения, поэтому 16 байт
тратится на хранение упакованного объекта и 4 байта
(8 для x64
) - на хранение ссылки на этот объект в самой структуре данных. Таким образом, в x32 JVM 4 байта
используются на хранение одного элемента и 16 байт
- на хранение упакованного объекта типа Byte
. Для x64
- 8 байт
и 24 байта
соответственно.
Что такое «интернационализация», «локализация»?
Интернационализация (internationalization) - способ создания приложений, при котором их можно легко адаптировать для разных аудиторий, говорящих на разных языках.
Локализация (localization) - адаптация интерфейса приложения под несколько языков. Добавление нового языка может внести определенные сложности в локализацию интерфейса.
Как разработчику увеличить доход?
Расширять список своих скиллов! Начать можно с бесплатного открытого урока «Шаблон проектирования ""Цепочка обязанностей""» (https://otus.pw/hze4/) от OTUS.
На вебинаре:
- рассмотрим превращение элементов поведения в объекты;
- проанализируем его на конкретном примере, формируя диаграмму классов;
- узнаем, как использовать шаблон «Цепочка обязанностей» для решения различных задач;
- покажем, как создать классы обработчиков и связать их в цепочку так, чтобы сообщение было обработано последовательно каждым обработчиком;
- разберем возможности настройки приоритета и условий обработки определенных сообщений.
Занятие пройдёт 5 декабря в 20:00 мск в рамках курса «Архитектура и шаблоны проектирования». После урока вы сможете продолжить обучение в рассрочку.
Для бесплатного участия и получения записи пройдите короткое тестирование прямо сейчас: https://otus.pw/xrfg/?erid=LjN8KLoJV
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
⛔Как разработчику повысить свою ценность в команде?
Расскажем на бесплатном практическом уроке «Механизм implicits в Scala» от OTUS и Алексея Воронца – руководителя разработки в NAUMEN.
☕На вебинаре:
— Познакомимся с историей возникновения и мотивацией компонентов механизма.
— Разберем возможности и опасности implicit-преобразований.
— Узнаем, как и для чего служат implicit-параметры.
— Рассмотрим правила и требования, по которым Scala ищет подходящего implicit-кандидата.
📢 Занятие пройдёт 30 ноября в 20:00 мск и будет приурочено к старту курса «Scala-разработчик». После урока вы сможете продолжить обучение на специальных условиях.
👉 Для бесплатного участия и получения записи, регистрируйтесь прямо сейчас: регистрация
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Что такое «интеграционное тестирование»?
Интеграционное тестирование (integration testing
) — это тестирование, проверяющие работоспособность двух или более модулей системы в совокупности — то есть нескольких объектов как единого блока. В тестах взаимодействия же тестируется конкретный, определенный объект и то, как именно он взаимодействует с внешними зависимостями.
Программа для преобразования десятичных чисел в шестнадцатеричные на Java
Воспользуемся методом Integer.toString().
Time complexity: O(N)
Auxiliary Space: O(1)
Переименовываем файл
Переименовать файл можно, переместив содержимое первого файла в новый файл и удалив предыдущий файл. Java обрабатывает эту операцию, используя метод resolveSibiling . Он используется для разрешения данного пути относительно родительского пути этого пути.
Чем отличается LongAdder от AtomicLong?
LongAdder — это класс, введенный в Java 8, который представляет собой альтернативу классу AtomicLong для выполнения атомарных операций над переменными типа long
. Он предоставляет более высокую производительность в некоторых сценариях, чем AtomicLong, особенно в случаях, когда множество потоков изменяют одну и ту же переменную.
Основные отличия LongAdder от AtomicLong:
— LongAdder разделяет внутренние счетчики между потоками, что позволяет потокам увеличивать разные счетчики и объединять их при необходимости. Это уменьшает конкуренцию между потоками, что может повысить производительность.
— Когда несколько потоков одновременно увеличивают LongAdder, он автоматически разделяет изменения между внутренними счетчиками, таким образом, уменьшая ожидание блокировки.
— Для получения общей суммы всех внутренних счетчиков LongAdder предоставляет метод sum()
, который объединяет значения счетчиков.
#для_продвинутых
#вопросы_с_собеседований
Как преобразовать строку в целое число?
Ответ на картинке.
Spring Data JPA: разница между методами findById, getOne, getById и findOne
JpaRepository Spring Data предоставляет огромный набор методов, упрощающих реализацию операций над базой данных.
Смотреть статью
Извлекаем имя из адреса электронной почты
Метод extractNameFromEmail
принимает строку с адресом электронной почты и возвращает подстроку до символа "@" (если символ "@" присутствует в строке) в качестве имени.
Какие подклассы класса Reader вы знаете, для чего они предназначены?
• Reader
- абстрактный класс, описывающий символьный ввод;
• BufferedReader
- буферизованный входной символьный поток;
• CharArrayReader
- входной поток, который читает из символьного массива;
• FileReader
- входной поток, читающий файл;
• FilterReader
- абстрактный класс, предоставляющий интерфейс для классов-надстроек;
• InputStreamReader
- входной поток, транслирующий байты в символы;
• LineNumberReader
- входной поток, подсчитывающий строки;
• PipedReader
- входной канал;
• PushbackReader
- входной поток, позволяющий возвращать символы обратно в поток;
• StringReader
- входной поток, читающий из строки.
ХОЧЕШЬ ПОВЫШЕНИЕ В 2023 ГОДУ? 😎🔥
Тогда самое время разобраться в микросервисной архитектуре и стать более востребованным специалистом.
🚀 Курс ведет действующий архитектор Кирилл Ветчинкин. Он успешно реализовал проекты для Мегафона, Теле2, ВСS Brокer. Постоянный спикер крупных IT-конференций.
Какие скиллы прокачаем:
📌 Декомпозиция систем на микросервисы, отталкиваясь от бизнес-домена.
📌 Встройка микросервисов в оргструктуру компании.
📌Организация перехода от монолитной системы к микросервисной.
Полная программа ТУТ 👉 https://microarch.ru/?utm_source=posev&utm_medium=erid2vtzqvmbtdn&utm_campaign=5
А самое главное — поддержка от спикера, чат с одногруппниками и полезные созвоны с разбором домашки.
📕 Сертификат об участии по итогам прохождения курса.
Узнай больше о курсе 👉 https://microarch.ru/?utm_source=posev&utm_medium=erid2vtzqvmbtdn&utm_campaign=5
Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099