bookjava | Unsorted

Telegram-канал bookjava - Библиотека Java разработчика

10986

📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP

Subscribe to a channel

Библиотека Java разработчика

10 популярных библиотек для модульного и интеграционного тестирования Java

Юнит-тестирование и интеграционное тестирование в Java являются важными составляющими процесса разработки программного обеспечения.

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

https://www.javacodegeeks.com/2023/03/10-popular-libraries-for-java-unit-and-integration-testing.html


👉@BookJava

Читать полностью…

Библиотека Java разработчика

Шпаргалка по Java

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Почему WebAssembly плохо годится для Java

Как разработчик TeaVM, компилятора байт-кода JVM в JavaScript и WebAssembly, я часто рекомендую пользователям, почему-то жаждущим сгенерировать WebAssembly, начать с JavaScript. Если честно, бэкэнд WebAssembly я очень давно не развиваю, не реализую в нём недостающих фич и не фикшу баги. Меня спрашивают: а почему так? Обычно, я просто игнорирую подобные вопросы, потому что в двух предложениях ответить на них невозможно, а для того, чтобы писать больше предложений, у меня нет времени. Обычно если я встречаю чьи-то попытки объяснить, чем WebAssembly плох для реализации JVM (а так же, CLR, JavaScript и прочих динамических сред), то они сводятся к следующему: "Java (.NET, JavaScript, ваш вариант) — это управляемый язык со сборкой мусора и исключениями, так что приходится тащить с собой гигантский рантайм". Что же, на самом деле, ситуация несколько сложнее, а размер рантайма вовсе не такой страшный и не является основным источником бед.

https://habr.com/ru/articles/757182/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Обучение Java-разработке с постоплатой и гарантированное трудоустройство! Учись сейчас – плати, когда устроишься на работу.

❗Старт нового потока по Java от школы IT Mentor уже в сентябре. Срок обучения 6-8 месяцев.
Ворвись в сферу высокооплачиваемого IT с поддержкой в закрытом комьюнити профессионалов-коллег в течение 18 месяцев.

👉 Записывайся на курс

Выпускники нашей школы уже на старте зарабатывают от 150 тыс.руб. Сможешь и ты!

Почему тебе точно нужно в школу IT Mentor?
✔ Только актуальная инфа и востребованный стек текхнологий: Java Core, JDBC, HIBERNATE, SPRING (Core, MVC, Security), SPRING BOOT, GIT (GITHUB, GITLAB), MAVEN
✔ Индивидуальная программа, заточенная под твой уровень знаний
✔ Контроль знаний с обратной связью менторов
✔ Работа на реальном проекте – при выпуске готовый кейс
✔ Поддержка опытных менторов позволит подготовиться к собеседованиям и составить твое CVL, проведение тестовых собеседований - быть уверенным в результате.
✔ Закрытое комьюнити с коллегами и чаты помогут оставаться в тренде.

Стань частью профессионального IT-сообщества! А если хорошо знаешь английский, вообще nice 🔥! Для тебя есть опция - трудоустройство в иностранную компанию и возможность релокации зарубеж.

Кстати, если вообще решишь не работать, а чилить на диване 24/7 и не устроишься в IT - вообще ничего не должен! Этот пункт мы внесли в договор 💸 Поэтому ты вообще ничего не теряешь.

👉 Записывайся на курс
Мест осталось мало!

Читать полностью…

Библиотека Java разработчика

Продвинутая Java

Динамический массив (ArrayList) - Введение
Динамический массив (ArrayList) - Как устроен?
Введение в многопоточность в Java
Ключевое слово volatile
Введение в тестирование. Модульное (Unit) тестирование.

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Java: перспективы, тренды и почему новичкам стоит его знать

Java – один из самых популярных и востребованных языков программирования в мире. Он используется в веб-разработке, разработке мобильных приложений, научных вычислениях и многих других областях. Несмотря на свою долгую историю, Java продолжает развиваться и оставаться актуальным инструментом для разработчиков. В этой статье в блоге ЛАНИТ мы собрали мнения ведущих экспертов в области Java из Artezio, Booking.com, Axiom JDK и др. Они обсуждают актуальные вопросы, связанные с использованием Java в современной разработке, дают советы новичкам и делятся своими мыслями о будущем этого языка программирования.

https://habr.com/ru/companies/lanit/articles/742100/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Многопоточность

Как можно создать потоки в Java?
Как устроить Deadlock, а затем уйти от взаимной блокировки навсегда
Два самых полезных слова в многопоточности join() и Future

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Хотите переплюнуть профессиональных Java-разработчиков? Roadmap для изучения Java в 2023 году

Java — настолько популярный и развитый язык, что контента на любую связанную с ним тему хоть отбавляй. Будь то технические разборы, обзоры популярных библиотек с открытым исходным кодом, статьи о поиске работы Java-программистом, сравнение с другими языками — всего не перечесть. Поиск по слову «java» в гугле выдал мне около 1,56,00,00,000 (?) результатов.

sahin.sarkar.me/want-to-become-better-at-java-than-the-pros-follow-this-roadmap-89677b467449" rel="nofollow">https://medium.com/@sahin.sarkar.me/want-to-become-better-at-java-than-the-pros-follow-this-roadmap-89677b467449

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Вопросы-ответы собеседования. Часть 2
Часть 1 /channel/BookJava/2311

Что такое статический блок инициализации? static инициализатор
Что такое статический вложенный класс? static nested class
Какие типы ссылок есть в Java? Что такое Strong, Soft, Weak, Phantom Reference?
Что такое Strong Reference? Как работает сильная ссылка?
Что такое Soft Reference? Как работает мягкая ссылка?
Что такое Weak Reference? Как работает слабая ссылка?
Что такое Phantom Reference? Как работает фантомная ссылка?
Чем отличается интерфейс от абстрактного класса?
Что такое String Pool? Как работает пул строк?
Что такое пул строк? Изучаем String Pool за 50 секунд!

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Заменят ли потоки данных циклы в Java?

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

И зачем тогда, спрашивается, нужны потоки данных? Есть ли у них преимущества перед циклами? Могут ли они их заменить? В статье мы изучим соответствующий код, сравним производительность и посмотрим, смогут ли потоки данных стать полноценной заменой циклов.

https://betterprogramming.pub/can-streams-replace-loops-in-java-f56d4461743a

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Шаблоны проектирования на языке Java

Введение в курс
Введение в ООП
Введение в шаблоны проектирования
Шаблоны Java. FactoryMethod (Фабричный метод)
Шаблоны Java. AbstractFactory (Абcтрактная фабрика)
Шаблоны Java. Singleton (Одиночка)
Шаблоны Java. Builder (Строитель)
Шаблоны Java. Prototype (Прототип)
Шаблоны Java. Creational patterns (Порождающие шаблоны. Заключение).
Шаблоны Java. Adapter (Адаптер)
Шаблоны Java. Bridge (Мост)
Шаблоны Java. Composite (Компоновщик)
Шаблоны Java. Decorator (Декоратор)
Шаблоны Java. Facade (Фасад)
Шаблоны Java. Flyweight (Приспособленец).
Шаблоны Java. Proxy (Прокси)
Шаблоны Java. Structural patterns (Структурные шаблоны. Заключение).
Шаблоны Java. Chain of Responsibility (Цепочка ответственности).
Шаблоны Java. Command (Команда).
Шаблоны Java. Interpreter (Интерпретатор).
Шаблоны Java. Iterator (Итератор).
Шаблоны Java. Mediator (Посредник)
Шаблоны Java. Memento (Хранитель)
Шаблоны Java. Observer (Наблюдатель)
Шаблоны Java. State (Состояние)
Шаблоны Java. Strategy (Стратегия)
Шаблоны Java. Template method (Шаблонный метод)
Шаблоны Java. Visitor (Посетитель)
Шаблоны Java. Conclusion (Заключение)

Полный курс на youtube

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Настройка и мониторинг Java приложений

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

Речь пойдет о бизнес-приложениях с одним сервером Java-приложения и одним сервером базы данных PostgreSQL, в каждом из которых одновременно работают от 500 до 2000 сотрудников компании. Приложения разработаны на базе открытой и бесплатной платформы lsFusion (пример приложения), но большинство описанных проблем и настроек не являются специфическими именно для нее.

https://habr.com/ru/companies/lsfusion/articles/741978/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Что означает CAP-теорема?

CAP-теорема, также известная как теорема Брюэра, является концептуальной основой для понимания распределенных систем.

Она была предложена в 2000 году Эриком Брюэром и формулирует три фундаментальных свойства, которые невозможно обеспечить одновременно в распределенной системе данных:
— Согласованность (Consistency);
— Доступность (Availability);
— Устойчивость к разделению (Partition tolerance).

Согласно CAP-теореме, в распределенной системе данных можно гарантировать только два из трех свойств:
— Согласованность и доступность (CA);
— Согласованность и устойчивость к разделению (CP);
— Доступность и устойчивость к разделению (AP).
Выбор между этими свойствами зависит от требований и характеристик конкретной системы и ее целей.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Дорожная карта web-разработчика Java

https://roadmap.sh/java

👉@BookJava

Читать полностью…

Библиотека Java разработчика

🚀 Уже через две недели состоится старт нового потока онлайн-курса "Java Developer. Professional".

🎉 Самый первый курс в OTUS, 30-й юбилейный запуск!!!🎉

В новом потоке вас ждет много нового, помимо изучения углубленных инструментов работы с Java, мы расскажем вам:
➡️ об особенностях создания безопасного веб-приложения на Java;
➡️ о настройке https в веб приложениях;
➡️ поговорим о написании чистого кода и рефакторинга;
➡️ разберем troubleshooting и debugging в Java приложениях.

📊Какие еще преимущества у нашей программы?
🔵мы учим писать clean code;
🔵 разбираем сложные кейсы, с которыми вы можете столкнуться в работе;
🔵 проводим сode-review также, как это делается в крупных промышленных проектах;
🔵преподаватели с опытом работы в крупных российских и международных компаниях.

🔥 Программа курса всегда актуальна.

➡️ Пройдите вступительный тест и присоединяйтесь к группе: https://otus.pw/VlGLx/

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

Библиотека Java разработчика

Java Graphics2D Game

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Все что вам нужно знать о таймаутах

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

Rus https://habr.com/ru/articles/755750/

Eng https://engineering.zalando.com/posts/2023/07/all-you-need-to-know-about-timeouts.html


👉@BookJava

Читать полностью…

Библиотека Java разработчика

Пишем плагин для IntelliJ IDEA. Ускоряем написание тестов на DTO

Кто я такой
В Java я недавно. Работаю Java-разработчиком около года при общем 10-летнем стаже в АльфаСтрахование. Этому году предшествовали годы разработки на ABAP и полгода обучения на Javarush.

https://habr.com/ru/company/alfastrah/blog/706314/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Автоматически ищем техдолг с помощью RefactorFirst

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

Она ищет в Java-коде Божественные Классы и классы с очень высоким уровнем связности, которые следовало бы отрефакторить. Для этого используются правила God Class Rule и Coupling Between Objects Rule из опенсорсного коданализатора PMD.

Коротко опишу, что это такое, и как этим пользоваться.

https://habr.com/ru/companies/bar/articles/746574/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Подборка Telegram каналов для программистов

Системное администрирование 📌
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux


/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)

/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика

/channel/itmozg Программисты, дизайнеры, новости из мира IT.
/channel/phis_mat Обучающие видео, книги по Физике и Математике

/channel/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста

1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus

Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах

GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
/channel/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
/channel/game_devv Все о разработке игр

Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT

Чат программистов📌
/channel/developers_ru

Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов

БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию

QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика

Шутки программистов 📌
/channel/itumor Шутки программистов

Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров

Английский 📌
/channel/UchuEnglish Английский с нуля

Математика 📌
/channel/Pomatematike Канал по математике

Excel лайфхак📌
/channel/Excel_lifehack

Читать полностью…

Библиотека Java разработчика

Что такое «анонимные классы»? Где они применяются?

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

Анонимные классы имеют несколько ограничений:
• Их использование разрешено только в одном месте программы - месте его создания;
• Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться;
• Реализует лишь методы своего интерфейса или суперкласса, т.е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа.

Анонимные классы обычно применяются для:
• создания объекта функции (function object), например, реализация интерфейса Comparator;
• создания объекта процесса (process object), такого как экземпляры классов Thread, Runnable и подобных;
• в статическом методе генерации;
• инициализации открытого статического поля final, которое соответствует сложному перечислению типов, когда для каждого экземпляра в перечислении требуется отдельный подкласс.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

JRE – Java Runtime Environment, Java-окружение времени выполнения. Это набор всего необходимого чтобы запустить скомпилированную Java-программу. Окружение состоит из виртуальной машины Java (JVM), библиотеки классов (Java Class Library), консольной команды java и прочей инфраструктуры. Тем не менее, JRE не достаточно чтобы создавать новые программы.

JDK – Java Development Kit, набор Java-разработчика. Это полнофункциональный SDK для Java. JDK включает в себя JRE, но кроме того содержит компилятор (javac) и другие инструменты разработки, такие как javadoc и jdb. С помощью JDK можно создавать и компилировать программы.

В большинстве случаев, если вам нужно только запускать Java программы, вы устанавливаете только JRE, если же вы планируете программировать на Java, вместо этого вам необходим JDK.

https://stackoverflow.com/questions/1906445/what-is-the-difference-between-jdk-and-jre/1906455#1906455

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Ещё раз о пропертях или откуда что берётся

О чём вообще речь?
Всем привет! В данной статье речь пойдёт о настраиваемых параметрах конфигурации Spring приложений. Когда я только начал изучать Spring, естественно, одним из источников знаний были готовые примеры, проекты-образцы. И меня жутко бесило, что какие-то нужные для работы приложения значения появлялись «ниоткуда». К примеру, автор какого-нибудь туториала предлагал для проверки только что созданного учебного приложения зайти на localhost по порту 8088. Откуда берётся 8088? Почему не 8089? Оказалось, что для таких настраиваемых параметров есть специальные файлы.

https://habr.com/ru/articles/740802/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Совет на  остаток лета 2023 год: углубитесь в изучение Java.
Тот, кто разбирается в тонкостях Java   — сможет что угодно и сорвёт куш.

А если вы хотите терять последние недели лета на бесполезные материалы и гайды — читайте канал: @javatg

Там просто и доступно объясняют какие шаблоны проектирования заставят ваш код летать, почему следует избегать использования исключений в управлении потоками, какие фишки Java Serialization API не знают 90% разработчиков.

Подписывайтесь, потом сами себе спасибо скажете: @javatg

Читать полностью…

Библиотека Java разработчика

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

Поработаем над темой вместе?

Команда Яндекс Такси и ведущие специалисты IT отрасли делятся своим опытом. Регистрируйтесь сейчас и используйте в работе лучшие практики.

2 сентября. «Москва-Сити», башня «Око», с онлайн-трансляцией. Бесплатно
Подробнее 

Читать полностью…

Библиотека Java разработчика

🦾 Освойте востребованный фреймворк всего за 5 месяцев и создавайте приложения на Java

🔥🔝 Знание Spring Framework – один из самых востребованных скиллов для разработчика, многие крупные проекты ищут именно таких специалистов на самые желанные офферы.

5️⃣ Вместе с OTUS вы можете освоить Spring всего за 5 месяцев в рамках курса «Разработчик на Spring Framework»!

Что даст вам этот курс:
- Умение эффективно работать в проектах, где есть Spring
- Знание современных возможностей Spring
- Понимание, как создавать Web-приложения на микросервисной архитектуре и решать высокоуровневые задачи по разработке
- Умение быстро проходить путь от идеи до production-grade
- Владение фреймворками Spring и технологиями вспомогательных проектов (Spring MVC, Spring Security, Spring Boot, Spring Reactive Stack, Spring 5)

🟠Курс доступен для приобретения в рассрочку!

➡️ Пройдите бесплатное вступительное тестирование прямо сейчас и узнайте, готовы ли вы стать студентом: https://otus.pw/oj5A/

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

Библиотека Java разработчика

Java-разработчикам с опытом от трёх лет.

Тинькофф запускает Scala & Java Weekend Offer. Это когда вы проходите собеседование за выходные и можете сразу получить оффер.

Сравните скиллы с требованиями и оставьте заявку до 23 августа: https://u.tinkoff.ru/one-day-offer.java_scala

Читать полностью…

Библиотека Java разработчика

🤖 Вредный совет по созданию кода в стиле Григория Остера!

«Упускайте все современные стандарты программирования! Используйте длинные и запутанные переменные, игнорируйте комментарии и пишите нечитаемый код. Не тратьте время на документацию и упрощение своего кода – чем сложнее, тем лучше! Помните, код создан только для вас, а не для других разработчиков, поэтому не беспокойтесь о читаемости и поддерживаемости. Это ваш уникальный стиль, и никто не должен понимать ваш код, кроме вас!»

Как вам совет?

📢📢 Еще больше вредных советов ждет вас 23 августа в 20:00 на вебинаре, который пройдет в рамках онлайн-курса «Углубленное изучение языка Java» OTUS.

🟠После занятия вы точно будете знать, как НЕ надо писать код, чтобы успешно проходить собеседования и работать в команде на проектах.

👉 Для участия зарегистрируйтесь на урок: https://otus.pw/pah1/

Нативная интеграция. Информация о продукте www.otus.ru

Читать полностью…

Библиотека Java разработчика

Перечислите примитивные типы данных в Java

• byte — целые числа в пределах -128 до 127, весит 1 байт;
• short — целые числа в пределах -32768 до 32767, весит 2 байта;
• int — целые числа -2147483648 до 2147483647, весит 4 байта;
• long — целые числа в пределах 9223372036854775808 до 9223372036854775807, весит 8 байтов;
• float — числа с плавающей запятой в пределах -3.4E+38 до 3.4E+38, весит 4 байта;
• double — числа с плавающей запятой в пределах -1.7E+308 до 1.7E+308, весит 8 байтов;
• char — одиночные символы в UTF-16, весит 2 байта;
• boolean значения true/false, весит 1 байт.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

AggreGate Java функции

— Линейная регрессия на JAVA
— Простая функция на JAVA
— Подключение сторонних библиотек, скрипты на JAVA
— Транспонирование таблицы AggreGate JAVA функцией
— Создание динамической HTML таблицы ч.1

источник

👉@BookJava

Читать полностью…
Subscribe to a channel