Изучаем Java. По вопросам сотрудничества: @seniorvladislav
➡️ JUnit 5 — современный инструмент для модульного тестирования
JUnit 5 — это обновлённая версия популярной библиотеки для тестирования, которая предоставляет мощный и гибкий API для написания модульных тестов. JUnit 5 поддерживает аннотации для удобного создания тестов, расширяемость через расширения, а также работу с различными тестовыми сценариями. Он также лучше интегрируется с современными инструментами и фреймворками.
🗣 JUnit 5 — идеальный выбор для проектов, где необходимо гибкое и масштабируемое тестирование с возможностью использования мощных расширений.
🔗 Ссылочка на доку
Какая ошибка при использовании метрик – самая опасная ?
Когда мы «молимся» на одни показатели, но игнорируем другие: те, которые не укладываются в нашу картину успеха. Такой перекос опасен для компании: будут страдать и сотрудники, и результаты их работы.
Хотите узнать, как пользоваться метриками, чтобы улучшать процессы, а не просто давить на команду?
Приходите на открытый вебинар «Метрики для оценки работы и производительности команды»
Будет интересно: менеджерам в IT, scrum-мастерам, agile-тренерам, руководителям и тимлидам в отделах разработки.
Вы научитесь:
- усовершенствовать оценку производительности команд
- оптимизировать процессы разработки
- внедрять и развивать метрики в agile и scrum-командах
- соблюдать баланс метрик
- повышать производительность не в ущерб качеству
Спикер: Ирина Метансина – проект-менеджер, agile-практик, бизнес-аналитик с 10-летним опытом в проектном управлении.
17 октября, 19:00 МСК
Бесплатно
Записаться на событие: https://otus.pw/bJar/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
➡️ Использование метода Optional.ifPresentOrElse()
для обработки значения или выполнения альтернативного действия
Начиная с Java 9, метод Optional.ifPresentOrElse()
позволяет выполнить действие, если значение присутствует, или выполнить другое действие, если значение отсутствует. Это помогает избавиться от лишних проверок на наличие значения.• Optional.ifPresentOrElse()
упрощает обработку значений и позволяет добавить fallback-логику в случае отсутствия значения.•
Этот метод делает код более компактным и читабельным, устраняя необходимость использовать громоздкие условные конструкции.
FastCSV
FastCSV — это высокопроизводительная, соответствующая RFC и не требующая зависимостей библиотека CSV для Java. Она является одной из самых популярных библиотек CSV для Java на GitHub.
https://github.com/osiegmar/FastCSV
#для_продвинутых
OpenCSV
OpenCSV — это библиотека Java с открытым исходным кодом, предназначенная для работы с CSV-файлами. Она обеспечивает простой и удобный интерфейс для чтения, записи, обработки и анализа CSV-данных. OpenCSV является одной из самых популярных библиотек для работы с CSV в Java, благодаря своей простоте использования, производительности и широкому набору функций.
https://opencsv.sourceforge.net/
#для_продвинутых
1. С чем предстоит работать:
Эмулирование зрителей на стримерские платформы с различной защитой(ютуб, твич, кик и подобные)
Опыт работы с сессиями, прокси, куками, обхода антифрода и клоудфлеера, токенами, апи социальных сетей, снифом приветствуется. Делаем на запросах.
2. На каком языке программирования будет основная часть работы:
Языки: Python | Node.js | C++ | С# уровня Middle или с опытом работы в накрутке
3. На какие сроки вам нужен исполнитель:
1-12 месяцев
4. Сколько готовы выплачивать исполнителю за работу:
От 500 до 5000$ за каждую площадку
Контакты:
Пишите в тг @TiKey_K
RE Design Buro – уникальные интерьеры для IT-специалистов!
Более 15 лет создаем уникальные проекты международного уровня, которые не только отражают ваш стиль, но и удовлетворяют все ваши потребности.
Что мы предлагаем?
⭐️ Полный дизайн-проект: от идеи до реализации – разработаем концепцию, подготовим детальные чертежи и подберем лучшие материалы.
💡 Оперативность и комфорт: начинаем работу ещё до получения ключей, чтобы вы могли въехать в новый дом как можно скорее!
❗️ Прозрачность и честность: фиксируем стоимость работ и сроки, предлагаем удобную поэтапную оплату.
🔥 Специальные условия для IT-специалистов при обращении до 31 октября.
👉 Выполненные работы
👉 Подписывайтесь на канал
👉 Бесплатная консультация дизайнера
Senior-разработчик создал крутейший канал про SQL
Благодаря простым картинкам даже новичок научится разрабатывать приложения с использованием баз данных.
Присоединяйтесь: @SQL
#вопросы_с_собеседований
Java передает аргументы по значению или по ссылке?
Java всегда передает аргументы по значению (pass-by-value). Тем не менее, когда мы передаем значение объекта, мы передаем ссылку на него, потому что переменные хранят ссылку на объект, а не сам объект. Но это не передача по ссылке (pass-by-reference). Такое положение дел может быть не совсем понятно новичкам.
Как можно извлечь цвет изображения из PDF IText Java?
Чтобы извлечь цвет изображения из PDF-файла с помощью IText и Java, вы можете использовать класс PdfImageObject для извлечения необработанных данных изображения из PDF-файла, а затем использовать класс BufferedImage из API ввода-вывода изображений Java для создания буферизованного изображения из необработанных данных.
Оттуда вы можете использовать метод getRGB() класса BufferedImage для получения цвета определенного пикселя изображения.
#вопросы_с_собеседований
Объясните смысл параметров в конструкторе HashMap(int initialCapacity, float loadFactor)
• initialCapacity - исходный размер HashMap, количество корзин в хэш-таблице в момент её создания.
• loadFactor - коэффициент заполнения HashMap, при превышении которого происходит увеличение количества корзин и автоматическое перехэширование. Равен отношению числа уже хранимых элементов в таблице к её размеру.
#вопросы_с_собеседований
Есть ли недостатки у сборки мусора в Java?
Да. Всякий раз, когда запускается сборщик мусора, он влияет на производительность приложения. Это связано с тем, что все остальные потоки в приложении должны быть остановлены, чтобы поток сборщика мусора мог эффективно выполнять свою работу.
В зависимости от требований приложения это может стать реальной проблемой, неприемлемой для клиента. Однако эту проблему можно значительно уменьшить или даже устранить за счет умелой оптимизации и настройки сборщика мусора, а также использования его различных алгоритмов.
Тестовое собеседование на Middle Java-разработчика в среду
Заходи 9 октября, в среду в 19:00 по мск на открытое онлайн-собеседование от ШОРТКАТ, чтобы узнать:
● Чего ждут от кандидатов на Middle позиции в Java-разработке
● Какие вопросы задают на интервью и зачем
● Как подготовиться к собесу, чтобы получить оффер
Интервью проведёт Роман Половинцев, ex. TeamLead в Сбере.
Чтобы записаться на эфир, переходи в бот → @shortcut_sh_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqwXka4J
#вопросы_с_собеседований
Могут ли у разных объектов быть одинаковые hashCode()?
Да, могут. Метод hashCode() не гарантирует уникальность возвращаемого значения. Ситуация, когда у разных объектов одинаковые хэш коды называется коллизией. Вероятность возникновения коллизии зависит от используемого алгоритма генерации хэш кода.
Успей влиться в МТС True Tech Champ! 🚀
Остаётся несколько дней, чтобы пройти регистрацию на МТС True Tech Champ — соревнования опытных и начинающих разработчиков со всей страны, которые поборются за призовой фонд 10 250 000 ₽.
Регистрация открыта до 12 октября. Участникам уже доступны задачи отборочного тура. Можно попробовать свои силы в двух треках:
🤖 Трек «Программирование роботов». Участникам предстоит написать алгоритм, с помощью которого робомыши пройдут лабиринт на скорость. Знать робототехнику не обязательно — главное, уметь программировать на одном из языков: С++, Go, Python, JS, Java, C#.
👩🏻💻 Трек «Алгоритмический». Классический олимпиадный формат: работа со структурами данных, проверка математических навыков и умения решать алгоритмические задачи.
Узнать больше подробностей о чемпионате и его офлайн-финале 8 ноября можно на https://truetechchamp.ru/champ
➡️ TestContainers — инструмент для тестирования с использованием контейнеров Docker
TestContainers — это библиотека, которая позволяет создавать тестовые окружения с использованием Docker-контейнеров. Это особенно полезно для тестирования взаимодействий с базами данных, сообщениями, веб-сервисами и другими инфраструктурными компонентами в изолированной среде.
TestContainers помогает запускать интеграционные тесты, используя реальные сервисы, работающие в контейнерах.
🗣 TestContainers — идеальный выбор для разработки интеграционных тестов, где нужно взаимодействовать с реальными сервисами.
🔗 Ссылочка на доку
➡️ Использование Virtual Threads для упрощения многопоточности
В Java 21 были введены виртуальные потоки — лёгковесные потоки, которые значительно упрощают создание и управление большим количеством параллельных задач. Они позволяют запускать тысячи и даже миллионы потоков без значительных затрат ресурсов и сложности управления.•
Виртуальные потоки потребляют меньше системных ресурсов, позволяя более эффективно использовать многопоточность.•
Они упрощают написание параллельного кода, делая его более читаемым и поддерживаемым.
➡️ MyBatis — мощный ORM-фреймворк для работы с базами данных
MyBatis — это гибкий и мощный фреймворк для работы с базами данных, который позволяет маппировать SQL-запросы на Java-объекты. В отличие от других ORM, таких как Hibernate, MyBatis предоставляет больше контроля над SQL-запросами и позволяет напрямую писать SQL, оставаясь при этом гибким инструментом для работы с базами данных.
🗣 MyBatis — это отличный выбор для тех, кто хочет больше контроля над SQL-запросами, но при этом предпочитает типобезопасное взаимодействие с базой данных.
🔗 Ссылочка на доку
Главная конференция по бизнесу в Telegram
31 октября в Москве пройдёт первая конференция по Telegram от крупнейшего сервиса аналитики Telemetr. Топы Телеграм-рынка, маркетологи и представители бизнеса обсудят самые актуальные тенденции и перспективы развития платформы Telegram.
Присоединиться к мероприятию можно будет и онлайн. Тут найдёте всю информацию - https://telemetr.pro.
На конференции вас ждут:
- 20+ опытных спикеров
- 1000+ онлайн и офлайн участников
- две сцены
- нетворкинг активности
- лаунж зона
- вкусный фуршет
- яркое afterparty в PAPA Moscow
Спикерами главной сцены будут: Артемий Лебедев, руководитель Telemetr - Денис Ларионов, основатель агентства GoDigital - Сурен Альбертян, основатель Сидорин ЛАБ - Дмитрий Сидорин и многие другие!
За подробностями сюда - https://telemetr.pro
А купить билет со скидкой в 10% можно, использовав наш промокод - TMConf10
Купить билет - https://telemetr.pro
uniVocity-parsers
uniVocity-parsers — это набор высокопроизводительных и надежных парсеров для Java. Он предлагает унифицированный интерфейс для работы с различными форматами файлов, а также надежную инфраструктуру для разработки новых парсеров.
#для_продвинутых
#вопросы_с_собеседований
Что такое "weak references" в Java и когда их стоит использовать?
Ответ ⬇️
Weak references (слабые ссылки) позволяют ссылаться на объекты, не предотвращая их сборку сборщиком мусора (GC). Если на объект осталась только слабая ссылка, GC сможет освободить его память, когда посчитает нужным. Это полезно в ситуациях, когда нужно избежать утечек памяти, но при этом объект не должен оставаться в памяти, если он больше не используется, как в кэширующих структурах данных или пуле объектов.
#вопросы_с_собеседований
Как создать поток-демон?
Объявить поток демоном достаточно просто — нужно перед запуском потока вызвать его метод setDaemon(true).
Проверить, является ли поток демоном, можно вызвав его метод boolean isDaemon().
#вопросы_с_собеседований
Как получить текущую дату с использованием Date Time API из Java 8?LocalDate.now();
Как добавить 1 неделю, 1 месяц, 1 год, 10 лет к текущей дате с использованием Date Time API?LocalDate.now().plusWeeks(1);
LocalDate.now().plusMonths(1);
LocalDate.now().plusYears(1);
LocalDate.now().plus(1, ChronoUnit.DECADES);
#вопросы_с_собеседований
Что такое Dead lock?
Случай когда у нас выполняются два потока(A, B) и наш первый поток(А) заблокировал метод a() и второй поток(В) заблокировал метод b() и в то же время поток А пытается получить доступ к методу b(), а поток B пытается получить доступ к методу а() называют dead lock.
Как бы вы связали Spring MVC Framework с архитектурой MVC?
Как следует из названия, Spring MVC построен на основе архитектуры Model-View-Controller. DispatcherServlet — это передний контроллер в приложении Spring MVC, который обрабатывает все входящие запросы и делегирует их различным методам обработчика контроллера.
Моделью может быть любой Java-бин в Spring Framework, как и в любой другой среде MVC Spring обеспечивает автоматическую привязку данных формы к Java-бинам. Мы можем установить bean-компоненты модели в качестве атрибутов, которые будут использоваться на страницах View.
Страницы View могут быть JSP, статическим HTML и т. д., а преобразователи представлений отвечают за поиск правильной страницы просмотра. Как только страница просмотра идентифицирована, управление возвращается контроллеру DispatcherServlet. DispatcherServlet отвечает за визуализацию представления и возврат окончательного ответа клиенту.
#вопросы_с_собеседований
Как можно заранее выйти из цикла?
Используя оператор break, мы можем немедленно прекратить выполнение цикла:
for (int i = 0; ; i++) {
if (i > 10) {
break;
}
}
#вопросы_с_собеседований
Какая польза от WebClient и WebTestClient?
WebClient — это компонент нового Web Reactive Framework, который может действовать как реактивный клиент для выполнения неблокирующих HTTP-запросов. Поскольку это реактивный клиент, он может обрабатывать реактивные потоки и в полной мере использовать лямбда-выражения Java 8. Он также может обрабатывать как синхронные, так и асинхронные сценарии.
С другой стороны, WebTestClient – это аналогичный класс, который мы можем использовать в тестах. По сути, это тонкая оболочка вокруг WebClient. Он может подключаться к любому серверу через HTTP-соединение. Он также может напрямую связываться с приложениями WebFlux, используя фиктивные объекты запросов и ответов, без необходимости использования HTTP-сервера.
#вопросы_с_собеседований
Опишите различные типы примитивов и объемы памяти, которые они занимают.
Java имеет 8 примитивных типов:
☕️ boolean — логическое значение true/false. Размер логического значения не определяется спецификацией JVM и может различаться в разных реализациях
☕️ byte — 8-битное значение со знаком
☕️ short — 16-битное значение со знаком
☕️ char — беззнаковое 16-битное значение
☕️ int — 32-битное значение со знаком
☕️ long — 64-битное значение со знаком
☕️ float — 32-битное значение с плавающей запятой одинарной точности, соответствующее стандарту IEEE 754
☕️ double — 64-битное значение с плавающей запятой двойной точности, соответствующее стандарту IEEE 754
Spring. Экспертное мнение о плюсах и минусах самого популярного Java-фреймворка
Spring является самым популярным инструментом при разработке промышленных приложений на Java – от больших монолитных приложений до микросервисов.
Смотреть статью
Зубчатый массив в Java
Зубчатый массив — это массив массивов, в котором массивы элементов могут быть разных размеров, т. е. мы можем создать двумерный массив, но с переменным числом столбцов в каждой строке. Эти типы массивов также известны как зубчатые массивы.
Подробнее о зубчатых массивах можно почитать здесь.