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
FileChannel

FileChannel используется для работы с файлами на низкоуровневом вводе-выводе.

Основные возможности класса FileChannel:
— Чтение данных из файла и запись данных в файл.
— Работа с файлом по смещениям. Можно получить текущее смещение в файле, переместить указатель чтения/записи в нужное смещение.
— Маппинг файлов в память. Файл можно отобразить в память и работать с его содержимым как с массивом байтов.
— Блокировка частей файла. Позволяет защитить критические участки файла от одновременной записи.
— Асинхронная работа с файлами.

FileChannel эффективнее потокового ввода-вывода, т. к. избавляет от накладных расходов на создание объектов и буферизацию.
Используется в приложениях, где нужна высокая производительность работы с файлами.
112👍10🔥3❤‍🔥2
🎯 Хотите стать Java-разработчиком, но думайте, что изучение основ программирования — это скучно?

Только не в нашем формате! Ждём вас на онлайн-курсе «Специализация Java-разработчик». Только живые вебинары, вы освоите самые востребованные инструменты и лучшие практики.

Ознакомится с курсом можно на бесплатном открытом уроке «Введение в Java Collections: обзор интерфейсов и их имплементаций».

📌 Урок пройдет 11 сентября в 20:00 мск.

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

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍3🔥2
🖥 TornadoVM — плагин, позволяющий автоматически запускать программы Java на гетерогенном оборудовании

Пару месяцев назад вышла стабильная версия open-source проекта TornadoVM 1.0 для запуска Java на гетерогенном оборудовании: CPU, GPU и FPGA.

TornadoVM — это плагин к OpenJDK и другим дистрибутивам JDK (например, GraalVM, Red Hat Mandrel, Amazon Corretto, Microsoft OpenJDK, Azul Zulu), который позволяет разработчикам автоматически запускать программы Java на гетерогенном оборудовании. TornadoVM нацелен на устройства, совместимые с OpenCL, PTX и Level-Zero, которые включают в себя многоядерные процессоры, выделенные графические процессоры (Intel, NVIDIA, AMD), интегрированные графические процессоры (Intel HD Graphics и ARM Mali) и FPGA (Intel и Xilinx).

В версии TornadoVM 1.0 появился новый API для размещения объектов вне кучи и коллекций массивов, улучшенная обработка внутреннего байт-кода, поддержка большего количества математических операций в OpenCL/PTX/SPIR-V, 16 векторных типов данных для float/double/int, поддержка драйвера Mesa Rusticl OpenCL, улучшение порядка устройств по умолчанию на основе максимального размера потока, обновление программы установки, а также значительно доработана документация проекта.

🖥 GitHub
🟡 Доки

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥84👍2
Хотите узнать, как легко и эффективно работать с потоковыми данными с помощью Alpakka?

Всего за пару часов вы разберете работу с потоковыми данными, узнаете, что такое «продьюсер» и «консьюмер», и научитесь применять эти знания в различных областях, где данные отсылаются и принимаются через Kafka.

Присоединяйтесь к открытому вебинару «Потоковая обработка данных с помощью Alpakka» 5 сентября в 20:00 мск!

Урок будет полезен всем, кто работает с потоковыми данными.

Спикер Валентин Шилин — старший программист/аналитик данных в зарубежной компании.

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

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

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
13👍2🔥2😁1
Инкапсуляция

Инкапсуляция — это принцип ООП, который заключается в сокрытии внутреннего представления класса от внешнего мира. Для этого используются модификаторы доступа: private, protected, public.

Обычно поля класса делаются private или protected, а методы — public. Это позволяет скрыть реализацию класса и предоставить к ней контролируемый доступ через public методы.

При запуске этой программы на выходе мы получим:
John 0
119👍8🔥32
Apache Ignite 3.0 — платформа для распределенного кэширования и вычислений

Недавно вышла стабильная версия Apache Ignite 3.0 — это open-source платформа, предоставляющая возможности для распределенного кэширования и вычислений в реальном времени.

Apache Ignite предлагает разработчикам мощный набор инструментов для работы с большими данными. Платформа позволяет организовать распределенное хранилище данных и обрабатывать их с высокой производительностью, используя CPU и GPU.

В версии Apache Ignite 3.0 были реализованы следующие улучшения:

Новый API для асинхронных операций и улучшенная поддержка транзакций.

Оптимизация работы с распределенными кешами и поддержка новых типов данных.

Интеграция с популярными инструментами для анализа данных, такими как Apache Spark и Apache Flink.

Улучшенная документация и обновленный интерфейс для мониторинга и администрирования.


🖥 GitHub
🟡 Доки

@javalib #java
1👍94🔥3😁2
👩‍💻 Абстрактный класс в Java

Вы пишете код для обслуживания банковских операций и определяете в нем три класса:

🔹 Person, описывает человека;
🔹 Employee, описывает банковского служащего;
🔹 Client, представляет клиента банка.

Классы Employee и Client будут производными от класса Person, так как оба класса имеют общие поля и методы. Поскольку все объекты будут представлять сотрудника или клиента банка, то напрямую мы от класса Person создавать объекты не будем.

Поэтому имеет смысл сделать его абстрактным, как на картинках.

Тем самым мы придерживаемся принципам ООП — наследование и полиморфизм (переопределяем метод display()). Также есть Инкапсуляция благодаря private полям класса Person.

С помощью всего этого, ваш код более гибкий для изменений, более читабельный и поддерживаемый.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍138🎉3
🖥 JaCoCo — библиотека Java для создания тестового покрытия

<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.13-SNAPSHOT</version>
</plugin>


JaCoCo — это довольно известная open-source библиотека Java для покрытия кода тестами;
библиотека была создана командой EclEmma.

🖥 GitHub
🟡 Доки

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134🔥3
Что такое «абстракция»?

Абстрагирование – это способ выделить набор общих характеристик объекта, исключая из рассмотрения частные и незначимые. Соответственно, абстракция – это набор всех таких характеристик.

Представьте, что водитель едет в автомобиле по оживлённому участку движения. Понятно, что в этот момент он не будет задумываться о химическом составе краски автомобиля, особенностях взаимодействия шестерёнок в коробке передач или влияния формы кузова на скорость (разве что, автомобиль стоит в глухой пробке и водителю абсолютно нечем заняться). Однако, руль, педали, указатель поворота он будет использовать регулярно.
👍1610
🖥 JBang — утилита для быстрого написания скриптов на Java

curl -Ls https://sh.jbang.dev | bash -s - app setup

JBang позволяет интерактивно с Java из командной строки и очень быстро писать простые сценарии

🖥 GitHub
🟡 Доки

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
111👍7🔥4🎄1
👩‍💻 Когда ломается магия фреймворков...

Более чем за десять лет работы со Spring Framework и Enterprise Java автор успел полюбить Spring Framework, возненавидеть и в итоге пересмотреть свои подходы к работе с ним. То же самое касается работы с рефлексией в целом и работы с АОП в частности.

Всё это из-за того, что магия фреймворков иногда ломается, и делает это очень неочевидно.


🎞🗣СМОТРЕТЬ YOUTUBE

🌐🗣СМОТРЕТЬ VKVIDEO
Please open Telegram to view this post
VIEW IN TELEGRAM
👍115🔥3
Fastexcel

Это легкая и производительная библиотека Java для работы с файлами Excel. Она позволяет читать, создавать и модифицировать электронные таблицы XLSX, используя простой и понятный API.

@javalib #java
2👍347🔥41
Предположим, есть метод, который может выбросить IOException и FileNotFoundException в какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?

Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок catch(Exception ex) {}, иначе все дальнейшие блоки catch() уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex).

Таким образом, исходя из факта, что
FileNotFoundException extends IOException сначала нужно обработать FileNotFoundException, а затем уже IOException.
🔥17👍1173
🖥 ConnectBot — SSH-клиент для Android на Java

ConnectBot — это клиент Secure Shell для Android, позволяющий подключаться к удаленным серверам по криптографически защищенному каналу.

ConnectBot удобнее всего использовать в Android Studio.

Быстрый старт с Docker и Jenkins CI:
docker run -it -v $(pwd):/workspace \
-v jenkinsfile-runner-cache:/var/jenkinsfile-runner-cache \
-v jenkinsfile-runner:/var/jenkinsfile-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):$(which docker) \
-e ANDROID_ADB_SERVER_ADDRESS=host.docker.internal \
jenkins/jenkinsfile-runner


🖥 GitHub

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍116🔥1
Хотите узнать, как концепция дилеммы заключенного применяется в разработке архитектурных решений?

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

Присоединяйтесь к открытому вебинару 3 сентября в 20:00 мск! Урок создан для архитекторов ПО, руководителей IT-проектов, Fullstack- и Backend-разработчиков.

Спикер Евгений Тюменцев — директор компании по разработке ПО, 20 лет преподает компьютерные дисциплины в ВУЗе: C++, Kotlin, C#, ООП.

Встречаемся в преддверии старта курса «Архитектура и шаблоны проектирования». Все участники вебинара получат специальную цену на обучение!

Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие.
16👍3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
10 важнейших компонентов веб-приложения

1. CI/CD pipelines: Все начинается с непрерывной интеграции и доставки (Jenkins, GitHub).
2. Запросы пользователей: После разрешения DNS запросы поступают на сервера.
3. Балансировщики: Равномерно распределяют запросы между серверами (Nginx, HAProxy).
4. CDN: Запросы могут обслуживаться через сеть доставки контента.
5. API: Веб-приложение взаимодействует с бекендами через API.
6. Базы данных и кэши: Бекенды взаимодействуют с базами данных или кэшами для получения данных.
7. Очереди задач: Большие задачи отправляются на воркеры с помощью очередей.
8. Поисковые службы: Поиск поддерживается службами полнотекстового поиска (Elasticsearch, Apache Solr).
9. Мониторинг и логирование: Хранение логов помогает анализировать данные, чтобы убедиться, что все работает исправно (Sentry, Grafana, Prometheus).
10. Службы оповещения: Уведомляют разработчиков о проблемах для быстрого реагирования.

💬 Какие еще компоненты вы добавили бы в архитектуру производственного веб-приложения?

@javalib #java
1👍216🔥3
👩‍💻 Как эффективно использовать Java Collections для хранения, извлечения и обработки данных?

Ждем вас на открытом вебинаре 11 сентября в 20:00 мск, где мы разберем:

✔️ обзор структуры коллекций и их основных методов;
✔️ особенности различных реализаций коллекций;
✔️ примеры применения коллекций для решения практических задач.

Урок идеально подходит для тех, кто начинает изучать Java или хочет углубить свои знания.

Встречаемся в преддверии старта курса «Специализация Java-разработчик».
Все участники вебинара получат специальную цену на обучение!

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

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