Обновить
512K+

Java *

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

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

Хранимые процедуры, функции и триггеры на Java

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

Всем привет! Сегодня мы расскажем о полезной возможности СУБД Ред База Данных - создании внешних подпрограмм, то есть процедур, функций и триггеров на языке Java. Например, язык PSQL не позволяет работать с объектами файловой системы или сети, а Java запросто решает такие задачи и существенно расширяет возможности встроенного языка.

Читать далее

Пишем приложение на Mi Band 7 с сервисной частью

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

Недавно я купил себе Mi band 7, по началу хотел купить 6-ую версию, пока не узнал, что на 7-ой обновилась операционная система и теперь она поддерживает установку приложений. Да, официально они об этом не заявили, но умельцы уже сделали множество приложений. Они ставят их как циферблаты, и это вполне обычные приложения. Но все эти приложения работают только локально на самом MiBand 7, не имея возможности взаимодействовать ни с телефоном, ни с интернетом. Я углубился в байткод приложения и документации по ZeppOS чтобы найти способ создавать приложения, взаимодействующие с интернетом, в этой статье я опишу свой путь. В итоге у меня получилось сделать запрос в интернет с часов и даже запустить мост для отладки приложений. 

Читать далее

Создание очередей с низкой задержкой размером в терабайт

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

Очереди часто являются фундаментальными компонентами в паттернах проектирования программного обеспечения.

Но что, если каждую секунду поступают миллионы сообщений, а многопроцессорные потребители должны иметь возможность читать полный журнал всех сообщений?

Java может хранить ограниченное количество информации, пока куча не станет ограничивающим фактором, в результате чего сборка мусора будет иметь большие последствия, что потенциально может помешать нам выполнить целевые SLA (соглашения об уровне обслуживания) или даже остановить JVM на секунды или даже минуты.

В этой статье рассказывается о том, как создавать огромные персистентные очереди, сохраняя при этом предсказуемую и стабильную низкую задержку с помощью Chronicle Queue с открытым исходным кодом.

Читать далее

Представление Project Loom в Java

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

Это руководство поможет вам понять, что представляет собой Project Loom в Java и как его виртуальные потоки (также называемые «fibers») работают «под капотом».

Читать далее

Параллелизм, асинхронность, многопоточность – Reactor почти всё сделает за Вас

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

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

В качестве примера, предлагаю рассмотреть реализацию сервис индексации данных в ElasticSearch. Данные хранятся в MongoDB, ключевые атрибуты которых синхронизируются с ElasticSearch (функционально похоже на Logstash). В проекте используется стек: Java/Spring Boot/Reactor/WebFlux/WebClient/RabbitMQ/MongoDB. На выбор RabbitMQ и MongoDB повлияло, в том числе, наличие реактивных драйверов.

Читать далее

Обзор уязвимости CVE-2022-42889: выполнение произвольного кода в Apache Commons Text (Text4Shell)

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

Прежде всего, давайте проясним, что это НЕ новая уязвимость Log4Shell или Spring4Shell.

Хотя это проблема удаленного выполнения кода, ее последствия не столь серьезны и не так легко эксплуатируются, как проблема в Log4j от декабря 2021 года.

Как и в случае с Log4j, суть проблемы заключается в том, что вы можете выполнить поиск, который затем может быть использован не по назначению.

Однако уязвимость Log4shell было очень легко использовать, что не обязательно произойдет в этот раз.

На самом деле эта проблема очень похожа на CVE-2022-33980, о которой мы писали в начале этого года.

Читать далее

Spring. Экспертное мнение о плюсах и минусах самого популярного Java-фреймворка

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

Spring является самым популярным инструментом при разработке промышленных приложений на Java — от больших монолитных приложений до микросервисов. Сразу стоит отметить, что под термином Spring мы понимаем не столько Spring Framework, сколько экосистему и Spring Boot. Всё, что позволяет нам «легко и непринужденно» использовать самые распространенные библиотеки из мира Java, зачастую даже не разбираясь в их настройках (всё настроено уже за нас).

Мы попросили Ильназа Гильязова, Java-разработчика с большим опытом, разобрать ключевые плюсы, минусы, проблемы и риски использования Spring, а также возможные альтернативы.

Читать далее

От OSB до Serverless

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

⚠️ Disclaimer: обычно я заканчиваю свои статьи фразой о том, что всё написанное может оказаться дичайшим овер-инжинирингом. В случае с этой статьёй я вынужден предупредить читателя об этой опасности заранее.

Если коротко, то это история о том, как я попытался сохранить выращенный урожай при помощи подручных средств: ОСП, утеплителя, ESP8266, керамического рептилического нагревателя и сервисов Yandex.Cloud. Успешно ли — покажет только весна.

Читать далее

Reverse-инжиниринг “чёрного ящика”: зачем поддержке исходный код?

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

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

Однажды к нам пришёл проект, о котором не было известно ничего: вендор покинул российский рынок и оставил систему с закрытым исходным кодом без документации и экспертной команды. Рассказываем, как именно мы справились с работой над "чёрным ящиком", а также объясняем на примерах технические детали получения исходников из закрытого JAVA-кода.

Читать

5 лучших книг по Java для новичков и профи, на которые стоит обратить внимание в 2022 году

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

Привет, Хабр! Мы поговорили с командой разработчиков Сбера и попросили поделиться книгами по Java, которые, по мнению коллег, заслуживают внимания как новичков, так и профессионалов.

Результат обсуждения ― в подборке ниже. Она будет полезной и тем, кто только начинает свой путь в мире Java, и тем, кто уже давно стал разработчиком. Если у вас есть собственный вариант хорошей книги по этому языку программирования ― делитесь в комментариях.

Читать далее

Telegram Bot на службе у автоматизации тестирования. Или как, попивая чай с плюшками, запускать автотесты с телефона

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

В этой статье я поделюсь своим опытом создания Telegram Bot-а для автоматизации тестирования.

Читать далее

API Токийской фондовой биржи Jquants

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

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

На данный момент через API доступны следующие массивы данных:


В будущем добавятся новые массивы данных.

Хотя текущие исторические данные доступны только начиная с 2017 года, поощряется отправка пользователями отзывов об API через обычные каналы github (и т. п.), чтобы разработчики могли подробнее понять особенности его использования.

В настоящий момент API бесплатен для личного пользования, для доступа к нему достаточно потратить несколько секунд на регистрацию и создание аккаунта на официальном веб-сайте с указанием адреса электронной почты, пароля и основных сведений.
Читать дальше →

3 трюка для устранения странных ошибок с дженериками

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

Вы знаете о системе PECS? Знаете ли вы о типах пересечений? Знаете ли вы, где используется создание дженерик массивов?

Большинство разработчиков Java используют дженерики без глубоких знаний. А вы должны знать ответы на эти вопросы. Если вы будете знать их, вы устраните многие проблемы, связанные с generics.

Давайте ответим на эти вопросы.

Читать далее

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

Структуры данных Java #неОпятьАСнова #javaJunior

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

Эта статья, как и все последующие – моя попытка структурировать полученные знания в процессе изучения Java. Здесь тезисно собрана вся основная информация по теме и те формулировки, которые показались мне наиболее удачными и понятными.
Это мой конспект, если хотите.

Статья будет полезна тем, кто изучает или повторяет основы Java Core.
И тем, кто готовится к собеседованию.

Читать далее

Android. Starting Kivy App and Service on bootup

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

Как запускать приложение или сервис написанные на python (Kivy) под Android (до API 25 версии) при запуске устройства. Что бы это сделать придется разбираться как работает buildozer и pythonforandroid. Т.к. на текущий момент сделать это по человечески не представляется возможным, из-за того что разработчики Kivy не позаботились об этом. Узнать что такое Kivy, как собрать первое приложение можно здесь или по ссылкам в конце статьи.

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

Настройка jwt-username-password authentication через spring-security-oauth2-resource-server

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

Добрый день!

В этой статье я хотел бы рассказать, как настроить простейшую jwt аутентификацию, без создания кастомных фильтров для генерации и валидации токенов. На мой взгляд найти пример конфигурации в "этих ваших интернетах", да такой чтобы над каждым методом не висело deprecated не самая простая задача, особенно для начинающих, а не начинающим эти примеры наверное и не нужны :).

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

Концепция ORM как двигатель прогресса — выдержит ли ее ваша СУБД?

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

ORM (Object-Relational Mapping) используется во многих языках программирования, в том числе и в 1С. Однако реализация высоконагруженных решений, приводит к мысли что разработчики ORM не учитывали ее влияния на производительность СУБД. Такая ситуация и в 1С и ORM на Java, и наверняка в других ORM . Причины приоткрывает данная статья.

Читать далее

Исключения в лямбда-выражениях Java

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

Java Stream API плохо работает с проверяемыми исключениями. В этой статье рассмотрим, что делать в таких ситуациях.

Читать далее

Пайплайн gitlab для Spring REST приложения. Часть 3

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

В статье описан мой первый опыт подготовки нетривиального пайплайна gitlab ci/cd при разработке микросервиса.

Предыдущие части:

Первая часть
Вторая часть

Читать далее

Impress me или как решить задачу на интервью

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

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

Поясню. Джуниор разработчик проходит собеседование. Ему дали следующее задание:

Одна из задач, которую мы даём соискателям: написать код, который выводит числа от 0 до 1000, которые делятся на 3, но не делятся на 5, и сумма цифр в которых меньше десяти.

Читать далее