Книги по Java | Books Java 📚
3.5K subscribers
274 photos
1 video
24 files
264 links
Java книги. По всем вопросам @evgenycarter
Download Telegram
Рецензия на книгу “Программируем на Java: практический подход к созданию надежных и эффективных приложений”

Теперь и на русском языке! Аарон Плоетц представил свое практическое руководство по Java 21 — вполне себе современному изданию, наполненному реальными примерами, охватывающими всю экосистему: от базовых конструкций языка и новых возможностей версии 21, через работу с реляционными и NoSQL‑базами (PostgreSQL и Cassandra), до создания GUI‑веб‑приложений на Spring Boot и Vaadin, и даже простых игр с анимацией. Книга получила высокие оценки читателей на Амазон — 4.2 звезд из 5.

«В э той книге я вернулся к своим программным истокам. Вдохновившись книгой Дэвида Лиена Learning BASIC for the Tandy 1000/2000, я решил создать пошаговое руководство по изучению Java. Хотя я ориентировался на начинающих, мне было важно включить и практические аспекты — решение реальных задач с использованием современной Java, а также таких фреймворков, как Spring Boot и Vaadin. С учетом моего опыта работы с базами данных, я добавил главы о работе с PostgreSQL и Apache Cassandra, а также об их облачных сервисах, таких как ElephantSQL и DataStax Astra DB. Моя цель — сделать книгу полезной и для тех, кто только начинает, и для опытных разработчиков, работающих с Java в корпоративной среде».

— Аарон Плоетц, автор


https://habr.com/ru/companies/ssp-soft/articles/929472/

👉 @java_360
2👍1
🔧 Сложности с масштабированием консьюмеров в RabbitMQ? Узнайте, как избежать ошибок, которые могут привести к потерям в порядке обработки сообщений.

📅 На открытом уроке 21 августа в 20:00 МСК разберём реальные кейсы и покажем, как правильно масштабировать консьюмеры, сохраняя порядок обработки. Узнаете, какие проблемы могут возникнуть при некорректном масштабировании и как их решить.

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

🚀 Зарегистрируйтесь на вебинар и получите в подарок записи трёх уроков по «Symfony», а также скидку на полный курс «Symfony Framework». Подарки доступны всем участникам! Регистрация по ссылке:

https://vk.cc/cOz3jA

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
1
📚Подборка книг для Java программистов

🔹Изучаем Java

Авторы: Кэти Сьерра, Берт Бэйтс
Английское название: Head First Java
Уровень: новичок

Книга от издательства O'Relly поможет изучить основы Java: переменные, типы данных, условные операторы, циклы и другие ключевые концепции. Темы для более продвинутых программистов тоже найдутся. Например, многопоточность, работа с файлами и сетью.
В Head First Java нетрадиционный подход к обучению. Авторы используют иллюстрации, загадки и задания для проверки, чтобы читателю было интересно и просто учиться. Например, объясняют принципы наследования и полиморфизма с помощью весёлых историй и практических примеров.


🔹Java. Полное руководство

Автор: Герберт Шилдт
Уровень: новичок

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


🔹Современный язык Java. Лямбды, потоки и функциональное программирование

Авторы: Рауль-Габриэль Урма, Марио Фуско, Алан Майкрофт
Английское название: Modern Java in Action. Lambdas, Streams, Functional and Reactive Programming
Уровень: новичок

Книга поможет освоить новые функции Java 8. Одна из них — лямбда-выражения. Они полезны, когда нужно выполнить какую-то операцию на массиве данных или обработать поток данных. Создавать отдельную функцию для каждой операции не нужно — лямбда-выражения позволяют выполнить операцию прямо в месте ее использования. В итоге код становится более компактным и читаемым.
Новичкам лучше брать более старую редакцию книги, которая вышла под названием «Java 8 в действии: лямбды, потоки и функциональный стиль». В ней меньше материала, поэтому его легче усвоить.


🔹Структуры данных и алгоритмы в Java

Автор: Роберт Лафоре
Английское название: Data Structures and Algorithms in Java
Уровень: опытный

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


👉 @java_360
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
🔍 Завтра тестовое собеседование с Java-разработчиком

20 августа (уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
📂 Сергей Чамкин, старший разработчик из Uzum, ex-WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Cергей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Сергею

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир
→ @shortcut_sh_bot

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
📚The Algorithm Design Manual
Автор: Steven S. Skiena (20202)

Книга является наиболее полным руководством по разработке эффективных алгоритмов.

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

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

В третьем издании расширен набор рандомизированных алгоритмов, алгоритмов хеширования, аппроксимации и квантовых вычислений. Добавлено более 100 новых задач, даны ссылки к реализациям на C, C++ и Java.

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

👉 @java_360
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
📚High Performance with Java: Discover strategies and best practices to develop high performance Java applications
Автор: Edward Lavieri (2024)

Автор подробно рассматривает оптимизацию работы JVM, управление памятью, стратегии многопоточности и эффективное взаимодействие с базами данных.

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

Основные темы

— Оптимизация сборки мусора и JIT-компилятора
— Эффективное использование структур данных и циклов
— Применение object pooling и стратегий неизменяемости
— Предотвращение утечек памяти и оптимизация работы с базами данных
— Использование ИИ для повышения производительности Java-приложений

👉 @java_360
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
Pro Jakarta EE 10: Open Source Enterprise Java-based Cloud-native Applications Development
Автор: Peter Späth (2023)

Эта книга поможет вам создавать более сложные корпоративные облачные и другие приложения на базе Java, которые могут работать в корпоративных и других критически важных средах. В книге рассматривается большинство ключевых API или функций Jakarta EE 10, включая JSF, JSP, JPA, CDI, REST, Microprofiles, WebSockets и многие другие. Попутно интегрируются и используются различные открытые проекты Apache, Eclipse и другие для более полного представления рабочих процессов и лечения в целом.

Скачать

👉 @java_360
2👍1
📕 Архитектура и написание backend тестов для разработчиков Java, QA инженеров, автоматизаторов, QA Lead и DevOps-специалистов

На открытом уроке 17 сентября в 20:00 мск мы погрузимся в тонкости построения архитектуры надежных и понятных backend-тестов:

📗 На вебинаре разберём:
1. Использование Java и RestAssured для API-тестирования, приёмы структурирования и переиспользования кода.
2. Архитектурные принципы построения надёжных тестов.

📘 В результате на практике освоите построение надежных backend-тестов, научитесь писать чистый, гибкий и поддерживаемый код на Java с RestAssured и получите архитектурные шаблоны и рабочие примеры для своих проектов.

👉 Регистрация и подробности о курсе Java QA Engineer. Professional: https://vk.cc/cPz9jL

Все участники открытого урока получат скидку на курс "Java QA Engineer. Professional"

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
1
Modernizing Enterprise Java: A Concise Cloud Native Guide for Developers
Авторы: Markus Eisele, Natale Vinto (2021)

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

Во время чтения книги вы:
✔️Изучите основы облачных приложений, чтобы понять, какие части Java-приложений и платформ вашей организации необходимо перенести и модернизировать;
✔️Поймёте, как корпоративные спецификации Java могут помочь вам в переходе проектов и команд;
✔️Создадите облачную платформу;
✔️Узнаете, как дополнить традиционное корпоративное Java-приложение компонентами поверх контейнеров и Kubernetes.

Скачать

👉 @java_360
👍3
😉 Как за 15 минут превратить таблицы БД в JPA-сущности?

В новом видео показываем, как быстро сгенерировать JPA-сущности из БД, организовать работу со Spring Data JPA и упростить написание Liquibase-скриптов. 

Кроме создания с нуля также показали как автоматически вносить изменения из БД в уже существующие JPA-сущности.

🧩СМОТРЕТЬ НА YOUTUBE 
🧩СМОТРЕТЬ В VK ВИДЕО 
🧩СМОТРЕТЬ НА RUTUBE 

#реклама
О рекламодателе
2
Многопоточность в Java

В Java многопоточность реализована через класс Thread и интерфейс Runnable. Вот основные моменты, которые могут быть полезны при работе с многопоточностью:

🔵1. Создание и запуск потока
- Поток может быть создан двумя способами:
- Наследование от класса Thread:

class MyThread extends Thread {
public void run() {
// Код, выполняемый в потоке
}
}
MyThread t = new MyThread();
t.start();

- Реализация интерфейса Runnable:

class MyRunnable implements Runnable {
public void run() {
// Код, выполняемый в потоке
}
}
Thread t = new Thread(new MyRunnable());
t.start();


🔵2. Основные методы класса Thread
- start() — запуск потока.
- sleep(long millis) — приостановка потока на определенное время.
- join() — ожидание завершения потока.
- interrupt() — прерывание потока.
- isAlive() — проверка, работает ли поток.

🔵3. Синхронизация
- Чтобы избежать проблем с конкурентным доступом к данным, используется синхронизация:

synchronized (this) {
// Критическая секция
}

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

🔵4. Пул потоков
- Для управления большим количеством потоков используется пул потоков, который управляется через ExecutorService. Пример:

ExecutorService executor = Executors.newFixedThreadPool(10);
executor.submit(() -> {
// Задача для потока
});
executor.shutdown();


🔵5. Состояния потока
Потоки могут находиться в разных состояниях:
- NEW: Поток создан, но не запущен.
- RUNNABLE: Поток готов к выполнению.
- WAITING: Поток ожидает другого потока.
- TIMED_WAITING: Поток ожидает в течение определенного времени.
- TERMINATED: Поток завершен.

🔵6. Проблемы многопоточности
- Состояние гонки (Race condition) — ситуация, когда несколько потоков одновременно пытаются изменить данные, что может привести к некорректным результатам.
- Блокировки — проблемы с мертвыми блокировками (deadlocks), когда потоки навсегда блокируются, ожидая друг друга.

🔵7. Современные подходы и классы
- ForkJoinPool — используется для параллельного выполнения задач с разделением на подзадачи.
- CountDownLatch, CyclicBarrier, Semaphore — различные утилиты для синхронизации между потоками.

🔵8. Параллельное выполнение коллекций
- Коллекции в Java также могут работать с потоками через parallelStream():

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.parallelStream().forEach(System.out::println);


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

👉 @java_geek
Please open Telegram to view this post
VIEW IN TELEGRAM
Жёсткие разговоры: увольнения, фидбек и конфликты без боли

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

Многие лиды признаются: именно сложные разговоры становятся главной ловушкой. Кто-то избегает их, кто-то слишком «давит», а кто-то теряется и теряет авторитет. На открытом вебинаре мы разберём:
✔️ как проводить сложные коммуникации и оставаться профессионалом;
✔️ где проходит грань между твёрдостью и человечностью;
✔️ техники, которые помогут безболезненно пройти через «неудобные» разговоры.

➡️ Встречаемся 2 октября, 20:00 МСК. Записывайтесь — и вы получите не только полезные практики, но и скидку на курс «Team Lead»: https://vk.cc/cPMgi6

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576