Java библиотека – Telegram
Java библиотека
31.5K subscribers
2.38K photos
91 videos
10 files
2.19K links
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
Download Telegram
Быстрое нахождение чисел Фибоначчи

Описание способа нахождения значения произвольного элемента последовательности Фибоначчи за логарифмическое время.

Читать статью
7👍6
🎯 Исключения в разработке — что это и как с ними работать?

Узнайте на открытом практическом уроке «Исключения. От Java до Spring, от шестнадцати и старше» от OTUS.

На вебинаре опытный эксперт разберет:

- что такое исключения;
- как ими пользоваться;
- как на них реагировать и почему они тесно связаны с архитектурой приложения.

И, конечно, мы не забудем про Spring!

Спикер — Senior Software Engineer.

Встречаемся 15 мая в 20:00 мск в преддверии старта курса «Разработчик на Spring Framework».
Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS!

👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок: https://otus.pw/t8uz/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🔥5
🖥 Веб-фреймворк для Java — Javalin

Javalin — это очень легкий веб-фреймворк для Kotlin и Java, поддерживающий WebSockets, HTTP2 и async-запросы. Главные цели Javalin — простота, отличный опыт разработчика и первоклассная совместимость между Kotlin и Java.

Javalin — это скорее библиотека, чем фреймворк.
Пара ключевых моментов:
— Не нужно ничего расширять.
— Нет никаких @Annotations

🖥 GitHub

@javalib
Please open Telegram to view this post
VIEW IN TELEGRAM
14
serialVersionUID

Это статическое поле, которое используется для версионирования сериализованных объектов. Когда объекты сериализуются, serialVersionUID указывает версию класса, используемую при сериализации и десериализации.

Проблема, которую serialVersionUID решает, связана с обеспечением совместимости при сериализации. Если класс был сериализован с определенной версией serialVersionUID, то при десериализации Java будет проверять, соответствует ли текущая версия класса версии, сохраненной в сериализованных данных. Если версии не совпадают, может быть брошено исключение InvalidClassException, указывающее на несовместимость версий.
👍195🔥4
🖥 Quarkus — это cloud native фреймворк для написания Java-приложений

Особенности Quarkus:
🟡Оптимизация для контейнеризации: создаваемые Java-приложения занимают минимум места, что идеально для работы в контейнерах.

🟡Cloud Native: воплощение 12-факторной архитектуры в таких средах, как Kubernetes.

🟡Унификация императивного и реактивного подходов: объединяет в рамках одной модели программирования неблокирующий и императивный стили разработки.

🟡Основано на стандартах: основана на любимых стандартах и фреймворках (RESTEasy и JAX-RS, Hibernate ORM и JPA, Netty, Eclipse Vert.x, Eclipse MicroProfile, Apache Camel и т.д.)

🟡Microservice First: обеспечивает молниеносное время запуска и скорость выполнения кода в Java-приложениях.

curl -Ls https://sh.jbang.dev | bash -s - trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/
curl -Ls https://sh.jbang.dev | bash -s - app install --fresh --force quarkus@quarkusio


🖥 GitHub
🟡 Доки

@javalib
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍259🔥5❤‍🔥2
🧠 Хотите упростить создание тестовой отчетности?

Ждём вас на открытом практическом уроке «Организовываем отчетность по автотестам на Allure» от OTUS.

💪 На вебинаре разберем:
- интеграцию Allure с Groovy pipeline на Jenkins;
- разницу между TestResult и TestResultContainer;
- интеграцию allure артефактов с Allure TestOps.

☝️Все это позволит вам оптимизировать работу и сэкономить время на рутинных задачах.

👉 Зарегистрируйтесь, чтобы посетить бесплатный урок: https://otus.pw/yRsK/

Встречаемся 15 мая в 20:00 мск в преддверии старта курса «Java QA Engineer. Professional». Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS!

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍64🔥2😁2
🖥 SQL-инъекции JDBC, JPA, Spring Data

В данной статье речь пойдёт о таком типе уязвимости приложений как внедрение SQL кода.
Вообще, в мире Java разработки существует несколько простых правил, позволяющих практически полностью исключить возможности внедрения SQL:
— Не использовать конкатенацию строк в запросах к базам данных.

— Использовать PreparedStatement/CallableStatement вместо Statement. Библиотеки spring-jdbc, Hibernate, MyBatis, JOOQ и прочие также внутри используют PreparedStatement.

— Передавать параметры запросов с помощью методов setParameter, а не в самом запросе.

Поэтому кажется, что большинство разработчиков уже следует этим правилам и риск подверженности SQL-инъекциям в Java приложениях преувеличен. К сожалению, контрпримеры существуют, и поэтому сохраняется необходимость в повышенном внимании к данной проблеме.
Этому и посвящена статья.

📎 Код примеров на GitHub

@javalib
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉16👍11🔥41
Присоединяйтесь к нашему бесплатному курсу и начните увлекательное путешествие в мир Java!

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

🎓 Чему вы научитесь:
— Создавать программы с использованием основных конструкций языка.
 — Разделять код на методы для повторного использования.
 — Анализировать ошибки в коде с использованием отладочной печати.

💼 Включено в курс:
29 уроков (видео и/или текст), 35 упражнений в тренажере, 95 проверочных тестов + дополнительные материалы.

Вы с нами?😉
🎉9👍63🔥3
Экземплярный инициализатор

Это блок кода внутри класса, который выполняется каждый раз при создании нового экземпляра класса. Он используется для инициализации экземплярных переменных.
🔥135👍5
📘 С чего начать изучение Apache Kafka?

Apache Kafka — многогранный и непростой инструмент. Даже если вы уверены, что знаете его, наш курс докажет вам обратное!

💻 Начните работу с Kafka на открытом практическом уроке от OTUS, где вы:

— разберете особенности и устройство Kafka;
— познакомитесь с основными утилитами;
— рассмотрите базовое API для работы с Kafka.

Спикер — опытный разработчик и преподаватель.

Встречаемся 20 мая в 20:00 мск в преддверии старта курса «Apache Kafka». Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS!

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://vk.cc/cwNvwq

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍83🔥2
🖥 Semgrep — статический анализатор кода для Java и не только

brew install semgrep

Semgrep — это быстрый open-source инструмент статического анализа для обнаружения ошибок и проверки соблюдения стандартов в процессе редактирования, коммита и т.д.
Semgrep — это семантический grep для кода: если grep "2" будет искать только точную строку 2, то Semgrep будет искать x = 1; y = x + 1 при поиске 2. И он делает это на 30 с лишним языках!

Правила Semgrep выглядят как код, который вы уже пишете; никаких абстрактных синтаксических деревьев, сложных regex или DSL.

🖥 GitHub

@javalib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍153🔥31
Познакомьтесь с основами востребованного языка программирования Java на бесплатном мини-курсе Skillbox! Узнайте, как Java-разработчики работают в офисе, на фрилансе, удалёнке и что нужно для старта карьеры. Бессрочный доступ за пару кликов: 👉 https://epic.st/I9NB6E?erid=2Vtzqw8P1Tf

Что вас ждёт:

✔️ Полезная теория
За 4 занятия изучите основы профессии и языка Java по видеоматериалам.

✔️ Интересная практика
Напишете первые проекты: Telegram-бота, программу для обработки файлов и чат на Spring. Опыт и знания в IT не нужны для их выполнения.

✔️ Живой эфир с экспертом по Java
В финале в прямом эфире пообщаетесь с Даниилом Пилипенко, который более 19 лет работает в сфере Java и веб-разработки.

🎁 За время обучения вы получите 5 полезных материалов в подарок, сертификат на скидку 10 000 рублей на любой курс, персональную карьерную консультацию и доступ к изучению английского языка в Skillbox на год.

Сразу после регистрации пришлём гайд по профессии Java-разработчика 😉

Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
👍84🔥4😁4
👩‍💻 Шаблонизация с Helm - Разработка проектов со Spring

В заключительном ролике цикла автор хочет вкратце рассказать о Helm - инструменте, который позволяет упростить процесс написания дескрипторов развёртывания для Kubernetes за счёт шаблонизации. Все написанные ранее дескрипторы развёртывания для сервисов имеют по большей части схожую структуру, и шаблонизация в данном случае позволит уменьшить дублирование кода и в целом ускорить процесс развёртывания.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143🔥2
Кто такой архитектор ПО и как им стать?

Архитектор ПО — одна из самых востребованных позиций на современном рынке IT.

Узнайте, что нужно, чтобы претендовать на эту должность, на бесплатном практическом уроке от OTUS. Спикер — опытный эксперт из крупной компании. На вебинаре разберём:

- какую роль выполняет архитектор и зачем он нужен;
- какие бывают архитекторы;
- чем отличается архитектура от проектирования.

Встречаемся 20 мая в 19:00 мск в рамках курса «Software Architect». Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS!

Ссылка для регистрации: https://vk.cc/cwOJ1V

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
6🔥4😁4👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 JMusicBot — музыкальный бот на Java для Discord, который легко настроить и запустить

Фишки бота:
— Легко запускается (нужно только Java)
— Быстрая загрузка песен
— Не требуется никаких внешних ключей (кроме токена Discord Bot)
— Плавное воспроизведение
— Настройка сервера для роли диджея, который может модерировать музыку
— Чистые и красивые меню
— Поддерживает множество сайтов, включая Youtube, Soundcloud и другие
— Поддержка многих онлайн-радио/потоков
— Поддержка локальных файлов
— Поддержка плейлистов (как веб-/ютуб, так и локальных)

🖥 GitHub

@javalib
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥5👍3
👩‍💻 Как и зачем Java-разработчику сочетать DTO, MapStruct и Spring?

Расскажем на открытом практическом уроке от OTUS.
Спикер занятия — Senior Software Engineer.

На вебинаре мы:

- разберем паттерн DTO (Data Transfer Object);
- обсудим проблемы, которые решает паттерн и его основные сценарии использования на примере небольшого приложения на Spring Boot;
- изучим инструмент MapStruct, чтобы сделать данное сочетание удобным и сократить количество boilerplate кода.

Встречаемся 23 мая в 20:00 мск в преддверии старта курса «Разработчик на Spring Framework».
Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS!

➡️ Регистрация на урок: https://vk.cc/cwP6E6

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥2
🖥 LangChain4j — Java-версия LangChain

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>0.30.0</version>
</dependency>


Цель LangChain4j - упростить интеграцию возможностей AI/LLM в Java-приложения.
Проект воплощает идеи из LangChain, Haystack и LlamaIndex.

🖥 GitHub
🟡 Доки

@javalib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103🔥2😁2
⌨️ Управление доступом к членам класса

Модификаторы уровня доступа определяют, могут ли другие классы использовать определенное поле или вызывать определенный метод.

Существует 4 уровня доступа:

private
Указывает, что доступ возможен только в его собственном классе.

package-private (нет явного модификатора)
Указывает, что доступ только внутри своего собственного пакета.

protected
Указывает, что доступ возможен только внутри его собственного пакета (как в случае с package-private) и, кроме того, для подкласса его класса в другом пакете.

public
Указывает, что доступ возможен отовсюду.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍241🔥1