Обновить
256K+

Java *

Объектно-ориентированный язык программирования

183,92
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Рыночные данные в кармане: как получать их быстро и просто с помощью Java/Kotlin и Spring Boot + TinkoffApi

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели8K

Если вы хотите написать проект, связанный с рыночными данными или торговлей на бирже, и вы знакомы с Java или Kotlin и слышали про Spring Boot, то эта статья для вас

Читать далее

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

Время на прочтение11 мин
Охват и читатели6.6K

Всем привет!

Сегодня с вами Юрий Шабалин, генеральный директор «Стингрей Технолоджиз», и я хотел бы разобрать в этой статье новый тип атаки на цепочку поставок под названием «MavenGate».

А что в ней, собственно, такого? Ну хотя бы то, что ей подвержены более 18% всех Java-библиотек, соответственно, для Android это применимо в полной мере. Совершить эту атаку безумно просто. Суть ее основана на логике работы сборщиков Java/Android-проектов и разрозненности репозиториев, которые хранят эти библиотеки.

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

Читать далее

ExamClouds: Бесплатные Уроки Java для Начинающих с Видео, Тестами и Практикой

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели4.8K

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

ExamClouds: Ваш Путеводитель в Мире Java

На сайте www.examclouds.com мы предлагаем бесплатные уроки для начинающих по Java программированию, созданные с любовью к коду и стремлению делиться знаниями. Что делает ExamClouds уникальным и неотразимым источником обучения? Давайте рассмотрим несколько ключевых особенностей.

1. Обширные Учебные Материалы: Видео, Статьи, Тесты и Задания

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

2. Подходит для Всех Уровней Навыков

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

3. Интерактивные Тесты и Практика

Что лучше, чем проверить свои знания? Пройдите тесты на ExamClouds, чтобы убедиться, что вы усвоили материал, и затем закрепите его на практике с нашими интересными заданиями.

4. Обновления и Расширения Ресурсов

Читать далее

Переходим на российскую Java. Что это такое и зачем нужно?

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели69K

Одна из сложнейших задач этого года — адаптация под новые условия работы с зарубежными вендорами и с open-source сообществом в целом. Open-source не решает все проблемы; в некоторых случаях он их только создает. При этом в российской разработке есть особенности, связанные с импортозамещением. Все вместе это наложило отпечаток на большинство классических программных платформ и языков программирования.

В 2023 году ЕДИНЫЙ ЦУПИС перевел информационные сервисы на отечественную платформу Java с поддержкой ее поставщика. Сейчас в качестве среды разработки и исполнения Java в ЕДИНОМ ЦУПИС используется Axiom JDK Pro. Давайте посмотрим на проблемы этого года глазами разработчиков Java-платформы, а поможет нам в этом Олег Чирухин, деврел в команде этого дистрибутива.

Читать далее

Framework для автоматизации тестирования на Java

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели8.7K

Привет, Хабр! В нашем сегодняшнем материале тестировщики Максим Жигарев и Артем Сенько из Блока ИТ‑развития инвестиционного бизнеса РСХБ‑Интех расскажут, как они автоматизировали тестирование в ИнвестБлоке с использованием Java. Материал основан на докладе, с которым Артем и Максим выступили в рамках внутреннего митапа для сотрудников РСХБ.

Читать далее

Весенние конференции JRG: онлайн и офлайн, новые и любимые

Время на прочтение3 мин
Охват и читатели1.1K

Этой весной мы проведём ряд конференций, и среди них целых три новых (про Go, ML и безопасность приложений). Одни мероприятия будут полностью онлайновыми, а другие пройдут в  Москве (но и к таким возможно подключиться удалённо).

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

Этот пост — сразу обо всём конференционном сезоне:
Flow (системный и бизнес-анализ), 12 марта, онлайн
SafeCode (безопасность приложений), 13-14 марта, онлайн
GoFunc (разработка на Go), 14-15 марта, онлайн
TechTrain (профессиональный рост в IT), 6 апреля
HolyJS (JS-разработка), 15 апреля в онлайне и 26-27 апреля в Москве
Heisenbug (тестирование), 16 апреля в онлайне и 22-23 апреля в Москве
JPoint (Java-разработка), 17 апреля в онлайне и 24-25 апреля в Москве
Mobius (мобильная разработка), 14 мая в онлайне и 20-21 мая в Москве
C++ Russia (понятно что), 15 мая в онлайне и 22-23 мая в Москве
I'ML (работа с ML), в июне, онлайн

Читать далее

Без ручного нет автоматизированного. Простой тест на Java для начинающих QA

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели15K

Теперь мы можем сделать вывод, что автоматизация - это ручные тесты, переведённые в автоматический процесс. И если нет ручных, то нет и автотестов.

Хочешь кататься, люби и саночки возить - это как раз про проектирование тест-кейсов. Мы конечно говорим не про автоматизаторов, которые пишут автотесты по ТК от ручных тестировщиков. Мы говорим про QA, который одновременно выполняет роль manual и automation engineer в команде.

Сегодня мы будем писать на Java

⚠️ Для того чтобы Яндекс не поставил капчу на наш парсинг сайта, нам необходимо сначала зайти на любую страницу, к примеру google translate и только после мы загружаем https://music.yandex.ru/home. Задача избежать прямого посещения сайта.

Шаг 1 Откроем https://music.yandex.ru/home в инкогнито
Шаг 2 Нажимаем на крестик для закрытия страницы онбординга

Написать автотест на Java

Apache Maven — введение в автоматизированную сборку проектов (часть 1)

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели25K

Добрый день Хабр, в данной статье мы разберём один из сборщиков проектов Apache Maven. Начнём с установки, настройки и сборки нашего первого проекта.

Apache Maven - это фреймворк по автоматизации и сборки Java-проектов. Обычно просто называют Maven.

Самую подробную информацию вы всегда можете найти на официальном сайте Maven.

А также центральный репозиторий Maven где собрано всё самое необходимое для работы с Maven.

Читать далее

Spring Data JPA и Hibernate: решаем проблему динамически изменяемого запроса к базам данных

Время на прочтение6 мин
Охват и читатели15K

Привет, Хабр! Меня зовут Николай Пискунов, я ведущий разработчик в подразделении Big Data. В блоге beeline cloud мои коллеги уже знакомили вас с SOLID, заглядывали под капот Python. Я же расскажу о том, как с наименьшими затратами получить динамически изменяемый запрос к БД, используя Spring Data JPA и Hibernate. 

Самый простой пример — реализация эндпоинта, который обрабатывает запросы фильтра интернет-магазина. Например, когда вы задаете характеристики, согласно которым возвращаются определенные товары.

Читать далее

DataMaps. Рассказ о нашей ORM на Kotlin

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели7.1K

Уже несколько лет мы с командой трудимся над платформой, которая официально называется БФТ.Платформа, а менее официально - Ice. В основном наша платформа используется в органах власти и государственных учреждениях.
Сегодня хотелось бы рассказать не обо всей платформе, а только об одном из ее компонентов - ORM (object-relational mapping) - фреймворке DataMaps.

Данная статья не инструкция или справка. Это достаточно поверхностный обзор, цель которого — получить первичную обратную связь: интересен ли наш фреймворк сообществу?

Внутри БФТ-Холдинга Datamaps зарекомендовали с одной стороны, как легкий, наглядный и понятный для разработчиков фреймворк, с другой стороны, мощный по своим возможностям.

Ознакомиться

Туториал по нотификациям через RSocket: от концепции до запуска в продакшн

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели11K

Однажды мы решали задачу разработки системы нотификаций для Альфа-Онлайн — мобильного банка в вебе. Нам было необходимо разработать инструмент по отправке сообщений (нотификаций) со стороны сервера в браузер в любой момент времени, пока клиент онлайн. На стороне Альфа-Онлайн каждый процесс самостоятельно определит дальнейшую судьбу сообщения.

После анализа различных вариантов, мы остановились на WebSocket в связке с RSocket.

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

Этап анализа и разработки превратился в бесконечные ресёрчи с долгим поиском информации по теме. Реальных примеров почти нет, а статьи (как англоязычные, так и русскоязычные) чаще всего приводят просто абстрактные примеры использования. Выжать практику из теоретических статей сопоставимо с попыткой нарисовать сову по мануалу из трех шагов.

Поэтому, когда мы закончили проект, то решили восполнить (или попытаться) этот пробел в русскоязычной среде на реальном примере. Надеемся, что эта статья поможет вам разобраться в применении RSocket over WebSocket и сократит время на погружение :) 

Читать далее

Как сократить потребление памяти в интеграционных тестах с Kafka с помощью GraalVM

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели4.6K

В данной статье я хочу поделиться своим опытом создания нативного образа для EmbeddedKafka с использованием GraalVM. Использование такого образа в интеграционных тестах позволяет увеличить скорость запуска тестовых сценариев и сократить объем потребляемой памяти. Интересно отметить, что в сравнении с использованием confluentinc/cp-kafka в Testcontainers, разница в скорости и потреблении памяти оказывается заметной — и не в пользу последнего.

Читать далее

Как загружать классы в Java 8 и Java 9+?

Уровень сложностиСложный
Время на прочтение24 мин
Охват и читатели9.6K

Привет, Хабр! Я разработчик в Институте Системного Программирования РАН, занимаюсь разработкой статического анализатора Svace. Недавно я столкнулся с задачей самостоятельной загрузки классов в JVM, что оказалось непросто, потому что в проекте мы используем модули Java.

Модули появились в Java, начиная с версии 9. Прошло уже несколько лет, но если попытаться найти актуальную информацию о связи модулей и загрузчиков классов, её придётся собирать по крупицам. В статье я поделюсь своим опытом изучения вопроса самостоятельной (и автоматической) загрузки классов с помощью кастомного загрузчика, а также разберу примеры, описывающие большинство случаев загрузки, постараюсь их объяснить.

Читать далее

Ближайшие события

По какому пути пойти начинающему программисту: Python vs Java

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели30K

Во всемирном рейтинге Tiobe язык программирования Python занимает первую строчку с долей около 13,97% по состоянию на январь 2024 года. Рост за 20 лет почти в 12,7 раза — согласитесь, впечатляет. Java тоже уверенно входит в ТОП-5. Если учесть сложность освоения C++, именно между Java и Python обычно выбирают начинающие программисты. Мы решили сравнить эти популярные языки и дать несколько полезных рекомендаций, чтобы выбор между курсами Java и Python был осознаннее.

Читать далее

Митап JUG.MSK: Алексей Рагозин про SJK (Swiss Java Knife)

Время на прочтение2 мин
Охват и читатели1.6K
19 января 2024 года на встрече московского сообщества Java-разработчиков JUG.MSK Алексей Рагозин рассказал о том, как при помощи набора инструментов с открытым кодом SJK (Swiss Java Knife) можно провести анализ производительности и профилирование решений, исполняемых на JVM.


Читать дальше →

Java ScopedValue: Ускоренный ThreadLocal

Время на прочтение12 мин
Охват и читатели10K

В инкубаторе JEP-429 появилась новая альтернатива ThreadLocal под названием ScopedValue (в значительной степени как поддержка и развитие Virtual Threads). ScopedValue предназначен для того, чтобы предоставить более легкую альтернативу ThreadLocal, которая хорошо работает с виртуальными потоками, а также решает многочисленные недостатки, присущие API своего аналога двадцатипятилетней давности. В этой статье мы рассмотрим основные отличия ScopedValue, и за счет чего он может работать быстрее.

Читать далее

Новостной Telegram бот на Java

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.5K

Долгое время изучаю Java (но работаю с Oracle) и всё время хочется написать что-то полезное и интересное. Так наткнулся на статьи о Телегам ботах, которые меня и надоумили соорудить своего бота Avandy News.

За идеей для функционала далеко ходить не пришлось, т.к. у меня имеется одна более менее успешная программа, которая попала в Реестр российского ПО (о ней и о том как попасть в Реестр я писал в этой статье).

Читать далее

CompletableFuture. Глубокое погружение

Уровень сложностиСложный
Время на прочтение20 мин
Охват и читатели103K

java.util.concurrent.CompletableFuture - класс не новый. Он предстал перед нами во всём своём величии в 2014-м году вместе с выпуском Java 8. Много лет с тех пор прошло, а проще он не стал.

Мы в компании называем их "фьючи". На хабре было много материала по отдельным частям их функциональности, но я решил поставить перед собой более серьёзную задачу - постараться разобрать внутреннее устройство и многие неочевидные нюансы работы с этим классом.

Читать далее

Задача на собеседовании, её решение и его разбор

Время на прочтение9 мин
Охват и читатели18K

Привет, обычно пару раз в год я хожу на собеседования без намерения менять работу, а для получения нового опыта и в поисках актуального ответа на вопрос "А что сейчас спрашивают?"


Часто там задают обычные, даже скучные вопросы вроде "расскажите о контракте между equals()и hashCode()", но иногда попадаются очень умные и приятные интервьюеры, проводящие собеседование вдумчиво, расспрашивающие о технологиях, используемых на целевом проекте (а не об абстрактном volatile), ставящие нестандартные вопросы и задачи. Сегодняшняя статья будет об одном из таких замечательных собеседований (вернее о задаче) и о вопросах, поднятых в ходе её обсуждения.

Читать дальше →

Project Valhalla: эпичный квест Java за перфомансом

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели14K

Java продолжает наносить ответные удары. В Java 21 релизнулись виртуальные потоки. Теперь есть надежда, что в ближайших версиях двинется к релизу старый и очень ожидаемый JEP-401 aka Project Valhalla. Эта короткая статья описывает проблему, которую решает JEP, и содержит бенчмарк на основе превью фичи из Java 22.

Читать далее