Как упростить себе жизнь: удобные юнит-тесты с JUnit и AssertJ
Для тестирования Java-приложений создано столько полезных инструментов, что в них немудрено запутаться.
Смотреть статью
Логирование данных
Уже давно прошло то время, когда для наблюдением за работой программы надо сидеть на стуле и всматриваться в консоль, сейчас эту работу делают логеры.
Суть логеров в записи данных из программы, дополняя её такими данными как время, место, уровень и так далее.
Самым популярным логером на данный момент является Log4J, установить который можно с помощью Maven/Gradle.
#для_продвинутый
Как вырасти от джуна до сеньора?
Расскажут на митапе Газпромбанка для начинающих IT-специалистов.
Что в программе:
🔹 28 спикеров, 19 лекций: backend, frontend, data science, кибербезопасность, прокачка IT-карьеры и многое другое.
🔹 Прожарка резюме.
🔹 Нетворкинг с 1000+ участниками митапа и спикерами.
🔹 After-party.
🎁 Каждому участнику подарят велком пэк с мерчем.
Где и когда?
📍 Москва, ул. Покровка, д. 47 (м. Красные ворота / м. Курская)
📅 16 декабря.
Участие бесплатное, но нужно зарегистрироваться!
👉🏻 Получить бесплатный билет
#для_начинающих
Реклама. БАНК ГПБ (АО). ИНН 7744001497.
Метод flatMap
Метод flatMap
используется в контексте работы с потоками (streams) в пакете java.util.stream
. Он представлен в интерфейсе Stream<T> и предназначен для преобразования элементов потока, когда каждый элемент может быть преобразован в ноль или один элемент другого потока.
Метод flatMap
применяет функцию mapper
к каждому элементу исходного потока и «разворачивает» (сплющивает) поток элементов в один объединенный поток, игнорируя нулевые потоки, которые могут быть результатом преобразования.
#для_продвинутых
Интерфейс Supplier
Интерфейс Supplier — это функциональный интерфейс в языке программирования Java, определенный в пакете java.util.function. Он представляет собой интерфейс, который может использоваться для предоставления значений, но не принимает аргументов. В этом интерфейсе есть один метод, который не принимает аргументов и возвращает значение.
Метод Supplier:
T get();Где
T
-- это тип возвращаемого значения.Supplier
может быть полезным, когда вам нужно получить значение, но не требуется передавать какие-либо аргументы для его получения. Этот интерфейс часто используется, например, в лямбда-выражениях и стримах для предоставления значений.В чем отличия между TreeSet и HashSet?
Основное отличие между TreeSet
и HashSet
заключается в том, что TreeSet
хранит элементы в отсортированном порядке, в то время как порядок хранения элементов в HashSet
не определен. TreeSet
также обеспечивает быстрый поиск и извлечение элементов в отсортированном порядке.
#для_начинающих
Класс DataOutputStream и его методы
Поток DataOutputStream
позволяет записывать примитивные данные в исходный код.
Если используйте объект DataOutputStream
, то у Вас есть под рукой вспомогательные методы, которые можно использовать для записи потока или для выполнения других операций над потоком.
Все перечисленные методы можно просмотреть здесь.
#для_продвинутых
«Иннотех» собирает ИТ-команду для самого масштабного fintech проекта. И ты — именно тот, кого мы ищем.
Что будем создавать? Чрезвычайно важный проект — АБС, автоматизированную банковскую систему, для России. Важнейшая история для всей финансовой сферы страны.
Цель — импортозамещение core banking платформы и создание с нуля ключевой ИТ-системы для банковской сферы.
Это будет не просто сложно, а невероятно сложно — таких проектов на рынке просто нет. Обещаем задачи 80 lvl, +100500 к опыту и 🔥🔥🔥-скилы.
Создаём АБС на современном технологическом стеке и микросервисной архитектуре.
В команду нужны:
• Java-разработчики;
• аналитики;
• специалисты DevOps;
• архитекторы систем;
• тестировщики;
• и не только.
Готов войти в финтех-историю? Это идеальный шанс, который нельзя упустить. Переходи по ссылке, жми «Присоединиться к команде» и получи быстрый оффер.
Реклама. ООО "ГК "ИННОТЕХ". ИНН 9703073496. erid: LjN8KMb7c
java.time.LocalDatejava.time.LocalDate
— это класс из пакета java.time, введенного в Java 8, который предоставляет удобные средства для работы с датами в формате «год-месяц-день». Этот класс представляет собой дату без времени и без учета часовых поясов. Он используется для выполнения операций, связанных только с датами, без учета времени суток.
#для_начинающих
Anonymous Inner Class
Anonymous Inner Class (Анонимный Внутренний Класс) — это специальный тип внутреннего класса, который определяется без имени и создается «на лету» внутри блока кода или выражения. Он является удобным способом создания классов, когда класс нужен только для реализации какого-то интерфейса или абстрактного класса, и нет необходимости создавать отдельный именованный класс.
Анонимные внутренние классы обычно используются для создания объектов, которые реализуют интерфейсы или наследуются от абстрактных классов. Они часто используются в событийном программировании и обработке событий в пользовательском интерфейсе, где нужно определить обратный вызов (callback) или обработчик (handler) на месте.
#для_продвинутых
#вопросы_с_собеседований
Напишите однопоточную программу, которая заставляет коллекцию выбросить ConcurrentModificationException.
Вопрос с подвохом: ConcurrentModificationException к многопоточности никакого отношения не имеет. Возникает эта штука тогда, когда мы пытаемся модифицировать коллекцию во время итерирования по ней.
Перед Новым годом все покупают подарки, колоссально повышая нагрузку на платежные системы.
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 вырождается в связный список и теряет свои преимущества.
Скажите что-то на карьерном
Тинькофф в поиске крутых ИТ-спецов. С компании — профессиональный рост, интересные финтех-задачи, решение бытовых забот и работа там, где вы живете. С вас — выбрать вакансию и откликнуться тут
АО «Тинькофф Банк», ИНН 7710140679
Интерфейс SortedMapSortedMap
— это интерфейс в Java, который представляет собой отсортированную коллекцию ключей и связанных с ними значений. Он расширяет интерфейс Map
и предоставляет методы для управления данными в упорядоченном виде.
Важно отметить, что SortedMap
не дублирует элементы и обеспечивает их упорядоченное хранение на основе натурального порядка ключей или с использованием заданного компаратора. Это означает, что элементы в SortedMap
автоматически упорядочиваются по ключам.
Методы, объявленные SortedMap
, можно посмотреть здесь.
#для_продвинутых
Apache Commons CLI
Apache Commons CLI (Commons Command Line Interface) — это библиотека для обработки аргументов командной строки в Java. Она предоставляет удобный способ определения и обработки аргументов командной строки для ваших Java-приложений. Библиотека Apache Commons CLI упрощает работу с аргументами командной строки, включая разбор аргументов, создание справки и обработку различных опций командной строки.
#для_продвинутых
Команда Поиска и рекламных технологий Яндекса приглашает на митап для senior бэкенд-разработчиков в Екатеринбурге.
Поговорим про разработку, поиграем в квиз, понетворкаемся и просто хорошо проведем время.
12 декабря, 18:00.
Регистрируйтесь, количество мест в офлайне ограничено!
Описание вакансии: Java Разработчик (Senior Level)
Компания: TALANTLIVO
Зарплата: от 250 тр
Основные обязанности:
✔️Разработка новых продуктов или поддержка уже текущих;
✔️Взаимодействие с различными командами
✔️Активное участие в жизни Java-сообщества;
Требования к кандидату:
✔️Опыт разработки на Java не менее 5 лет;
✔️Уверенное знание Spring Framework и микросервисной архитектуры;
✔️Понимание основных принципов работы с алгоритмами, структурами данных, объектно-ориентированного программирования (ООП) и принципов SOLID;
✔️Знание английского языка на уровне, достаточном для чтения технической документации;
Будет плюсом:
✔️Уверенное знание гибких методологий разработки;
✔️Лидерские качества и потенциал для роста до позиции лидера команды;
Что мы предлагаем:
✔️Работу в динамичной и инновационной среде;
✔️Широкий спектр интересных проектов;
✔️Возможности для профессионального роста и развития;
✔️Удаленный формат работы из любой точки мира
Контакт для связи @czarina007
Сообщение для амбициозных программистов!
📆 Для тех, кто уже знает как делать бэкенд, но ищет возможностей для развития, школа Smartup запускает курс «Облачные serverless приложения на Java». И первая неделя обучения - бесплатно!
Зачем осваивать облачные serverless приложения?
✅ Ближайшие 5 лет технология будет активно развиваться как на зарубежном, так и на российском рынках.
✅ Работодатели готовы вкладываться в переезд и поддержание облачной инфраструктуры. Эта технология существенно экономит ресурсы компании.
✅ Сейчас специалистов в разы меньше, чем нужно рынку
✅ Ежемесячно в компании требуется от 400 сотрудников облачных приложений
Первый модуль бесплатный — можно оценить курс и достаточность ваших навыков для его прохождения.15 декабря открывается доступ, успейте занять свое место на курсе!
➡️ Регистрирация по ссылке: https://clck.ru/36wi8M! Облака — это тренд, и он надолго.
Реклама. ООО "СМАРТАП ТЕХНОЛОДЖИ". ИНН 5501278983. erid: LjN8K77ot
Закрытие потоков через метод close()
Закрытие потоков через метод close()
обычно используется для освобождения ресурсов, связанных с потоками ввода/вывода (I/O), такими как файловые потоки, сетевые соединения и т. д. Это важно для предотвращения утечки ресурсов и обеспечения правильной работы вашей программы. Важно вызывать close()
после завершения работы с потоками.
#для_продвинутых
Класс Hashtable
Класс Hashtable
представляет собой структуру данных, которая используется для хранения и управления коллекциями пар «ключ-значение». Hashtable
является одной из структур данных, предоставляемых Java Collections Framework, и работает по принципу хеш-таблицы. Он был представлен в ранних версиях Java и является устаревшим начиная с Java 5, так как более современные альтернативы, такие как HashMap
, предпочтительнее.
#для_продвинутых
🎄 Как насчет ежедневных best practices вплоть до Нового Года?
Новый день = новая возможность сделать твой код чуточку лучше!
Присоединяйся и открывай DMDEV ADVENT CALENDAR 🎁
Как сделать объект сериализуемым?
Чтобы сделать объект сериализуемым, вы должны реализовать интерфейс Serializable
. Этот интерфейс не содержит ни одного абстрактного метода и предназначен для маркировки объекта как сериализуемого. Когда объект класса реализует этот интерфейс, вы можете использовать механизм сериализации Java для сохранения и восстановления его состояния.
#для_продвинутых
Метод Math.random()
Используется для генерации случайного числа в диапазоне от 0.0 до 1.0. Различные диапазоны могут быть достигнуты с помощью арифметики.
Выше приведен пример выбора случайного числа в диапазоне от 0 до 10.
Что такое «интернационализация», «локализация»?
Интернационализация (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.