bookjava | Unsorted

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

10986

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

Subscribe to a channel

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

Как готовить свой код к виртуальным потокам
Олег Естехин

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

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

Решаем, надо ли вообще что-то менять.

https://www.youtube.com/watch?v=dVh88WVS6NU

👉@BookJava

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

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

How to Use LazyConnectionDataSourceProxy with Spring Data JPA

Небольшая заметка о LazyConnectionDataSourceProxy — инструменте, который позволяет получать коннект к БД в Lazy-режиме, то есть в момент непосредственного выполнения запроса, что улучшает утилизацию коннектов и позволяет увеличить пропускную способность приложения.

https://vladmihalcea.com/lazyconnectiondatasourceproxy-spring-data-jpa/

👉@BookJava

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

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

👩‍💻 Java — один из самых востребованных языков, но не каждый разработчик умеет использовать его возможности по максимуму.

На курсе «Java Developer. Professional» вы научитесь создавать современные Java-приложения, освоите Spring WebFlux и Kafka, а также разберётесь в работе JVM изнутри.

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

Начните свой путь к уровню Middle+! Используйте Java на 100%.

➡️ Пройти вступительный тест курса: https://vk.cc/cEUQh1

🎁 Только в "Черную пятницу", скидки на курс до 15%! Подробности у менеджеров.

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

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

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

Совет по Java 💡☕️

Как легко просуммировать все числа в Java-списке? Для этого мы можем использовать метод Java Stream
reduce

👉@BookJava

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

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

RESOURCE_LOCAL JPA Transaction Type

Небольшая статья от Vlad Mihalcea, посвященная типу транзакции RESOURCE_LOCAL в JPA. Тип транзакции RESOURCE_LOCAL используется как стандартный в Spring Data JPA. Советуем ознакомится со статьей, если еще не слышали про такой тип транзакции.

https://vladmihalcea.com/resource_local-jpa-transaction-type/

👉@BookJava

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

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

Podlodka Java Crew возвращается с новой темой — Асинхронной архитектурой, чтобы помочь Java-разработчикам освоить самые востребованные подходы и инструменты.

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

Погружаемся в асинхронность вместе:

- Рулетка кейсов: "Spring, Micronaut, Quarkus и Helidon" — Григорий Кошелев и Андрей Когунь о плюсах и минусах каждого фреймворка 🛠️
- "Проектирование Event Driven-систем с DDD и Event Storming" — Кирилл Ветчинкин расскажет, как создавать масштабируемые и управляемые системы 📈
- Воркшоп "Apache EventMesh на практике" — Павел Бодячевский поможет внедрить Event Mesh в проект 🎯
- "Debezium: окно в асинхронный мир данных" — Евгений Ефименко раскроет секреты работы с данными в реальном времени 🔄

Присоединяйтесь, чтобы освоить асинхронность на практике: https://podlodka.io/javacrew

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

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

👩‍💻 Мечтаете научиться программировать на Java? Пора начинать!

🗓 20 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java-разработчик» от Otus.

Приходите на открытый урок, где мы шаг за шагом создадим игру «Угадай число» с нуля.
Вы познакомитесь с основами языка, поймете, как изменять код и менять функционал программы, освоите первые блоки, которые нужны для старта.

Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.

Хотите научиться создавать приложения? Узнать, как строятся программы на Java? Этот урок — ваш первый шаг в IT!

🔗 Ссылка на регистрацию: https://vk.cc/cEARfV

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

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

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

Jextract — The Native Library Binding Extraction Tool

Проект Panama разработан для поддержки доступа к нативным библиотекам на Java. Foreign Function and Memory API (FFM API) упрощает взаимодействие между JVM и чужими API-интерфейсами. FFM API добавлена в JDK 22 для поддержки доступа к внешней памяти и вызова внешних функций. Инструмент Jextract анализирует заголовочные файлы нативных библиотек и генерирует Java-код для использования внешних функций и API памяти. О том, как использовать этот инструмент, подробно в гайде.

https://dev.java/learn/jvm/tools/complementary/jextract/

👉@BookJava

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

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

Java Language Futures - Fall 2024 Edition

0:00 - Intro
3:54 - Records
9:14 - Sealed classes
11:22 - Pattern matching
20:00 - Data Oriented Programming
29:00 - Implicitly declared classes & instance main methods
33:20 - with Expressions
38:20 - Flexible constructor bodies
48:10 - What's next
50:53 - Conclusion

https://www.youtube.com/watch?v=NNPN5tvjzqA

👉@BookJava

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

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

Определение и отличие IP адресов LAN, PPP в Java. Использование DatagramSocket для нестандартных ситуаций

В некоторых случаях, например, при работе с Linux-системами, InetAddress.getLocalHost() может давать неожиданный результат. В таких ситуациях может быть полезно использовать другой способ — через DatagramSocket, отправляя запрос в сеть:


import java.net.*;

public class GetPreferredIP {
public static void main(String[] args) throws SocketException {
try (final DatagramSocket socket = new DatagramSocket()) {
socket.connect(InetAddress.getByName("8.8.8.8"), 10002);
System.out.println(socket.getLocalAddress().getHostAddress());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}


Сервер не получает эти данные, однако этот метод поможет определить предпочтительный локальный IP-адрес.

👉@BookJava

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

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

⚡ Пишем веб-сервис на Java, а затем преобразуем его в Kotlin!

📅 Дата: 12 ноября в 19:00 МСК
Записаться на урок: 👉 https://otus.pw/KiBHk/?erid=2VtzqvgwWxu

Будет интересно: Java-разработчикам и бэкенд-разработчикам на Kotlin.

В первой части занятия познакомимся с основными концепциями:
✅ null-безопасность
✅ сокращение шаблонного кода
✅ лямбда-выражения

Во второй части – напишем веб-сервис с CRUD-операциями на Java, а затем преобразуем его в Kotlin. Так вы увидете, как синтаксис Kotlin упрощает код.

👨‍🏫 Вебинар проведёт Сергей Прощаев, ведущий инженер и Java-разработчик в крупной компании.

После вебинара вы сможете приобрести курс «Kotlin Backend Developer. Professional» по специальной цене и даже в рассрочку!

🔗 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/KiBHk/?erid=2VtzqvgwWxu

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

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

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

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

/channel/piterspb Канал о Санкт-Петербурге 🌇❤️💙


Системное администрирование 📌
/channel/sysadmin_girl Девочка Сисадмин 👩
/channel/srv_admin_linux Админские угодья
/channel/linux_srv Типичный Сисадмин

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

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/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 Полезные советы по программированию
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT
/channel/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста

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

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

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

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

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

Математика 📌
/channel/Pomatematike Канал по математике
/channel/phis_mat Обучающие видео, книги по Физике и Математике

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

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

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

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

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

Приглашаем на пятый юбилейный митап IT Talk by Sber в Новосибирске! ⚡️

В этот раз мы вернёмся к истокам — поговорим про Java и всё, что с ним связано. Гарантируем, что на митапе тебе будет что и кого послушать и с кем пообщаться!

Когда и где: 14 ноября, Новосибирск, лофт-парк «Подземка».

Темы и спикеры:
✅Разделяй и властвуй: Практический подход к горизонтальному масштабированию реляционных баз данных в Java (Дмитрий Дрожжин, Lead Java-разработчик)
✅Различия и особенности локального запуска и запуска в контейнере (Вячеслав Гуров, Senior Java-разработчик)
✅Использование коллекций java.util.concurrent для разных моделей Producer-Consumer с различной интенсивностью операций добавления, удаления, поиска и количеством участников (Роман Бондарь, Lead Java-разработчик)

Как попасть на мероприятие? Регистрируйся и приходи 14 ноября!💚

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

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

👩‍💻 Обучение для тех, кто хочет освоить Java на профессиональном уровне — JVM с профилированием и оптимизацией приложений в облаках.

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

Ответишь
— пройдешь на продвинутый курс "Java Developer. Advanced" от OTUS по специальной цене.

👉 ПРОЙТИ ТЕСТ: https://vk.cc/cEdAyT

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

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

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

Хотите упростить JPA-запросы в Spring Data?

Ознакомьтесь с демонстрацией Query By Example (QBE)! Создавайте динамические, безопасные для типов запросы без шаблонов.

Идеально подходит для гибких форм поиска

Java 23 + Spring Boot + Spring Data JPA

https://github.com/danvega/qbe

👉@BookJava

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

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

👩‍💻 Приглашаем вас принять участие в открытом уроке, который посвящён теме «Интернационализация и локализация в приложениях Spring». Вы узнаете, как эффективно реализовать процесс локализации в Spring-приложениях.

Мы рассмотрим работу с классом Locale, использование MessageSource в Spring Boot и без него, способы хранения и смены локали в веб-приложениях, а также локализацию в шаблонах Thymeleaf и сообщений Bean Validation.

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

🗓 25 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework» от Otus.

Программа вебинара:
✔️ Основы локализации в Spring.
✔️ Инициализация и конфигурация MessageSource.
✔️ Управление локалью в веб-приложениях.
✔️ Практические аспекты локализации.

Этот урок будет полезен Java-разработчикам с опытом 1–3 года, а также Kotlin-разработчикам.

🔗 Ссылка на регистрацию: https://vk.cc/cEWrao

🎁 Только в "Черную пятницу", скидки на курс до 15%! Подробности у менеджеров.

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

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

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

Null Object Pattern to Avoid Null Pointer Exception with JEP-45

Небольшая заметка об использовании Null Object Pattern в контексте добавления поддержки примитивных типов в Pattern Matching в JEP-455.

https://foojay.io/today/exploring-new-features-in-jdk-23-null-object-pattern-to-avoid-null-pointer-exception-with-jep-455/

👉@BookJava

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

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

CompletableFuture Example: Crawler

Статья посвященная использованию Completable Future и содержит интересный пример его использования. Описана реализация веб-сканера (web crawler), который, начиная с Reddit/r/Java, будет по ссылкам искать новости, посвященные хакингу.

https://concurrencydeepdives.com/java-completablefuture-example/

👉@BookJava

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

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

👩‍💻 Открытый урок «Знакомство с виртуальными потоками Java»

🗓 21 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Advanced» от Otus.

Легковесные потоки были введены во многих языках программирования, таких как Go, Kotlin и другие. Теперь Java догнала другие языки по этой функциональности.

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

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

🔗 Ссылка на регистрацию: https://vk.cc/cEEAfJ

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

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

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

Илья Спицын, X5 Tech — jOOQ. Лекарство от Hibernate?

Поговорили об SQL-driven работе с БД. Спикер кратко сравнил инструменты и рассказал о преимуществах jOOQ для построения сложных запросов. Показал несколько примеров, где jOOQ может пригодиться разработчику.

Доклад будет полезен разработчикам, которые задумываются о поиске альтернативных инструментов для работы с БД.

https://youtu.be/SCSLoi4iiXA?si=D3Ez3kFFKFLB4zmK

👉@BookJava

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

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

Five Ways to Speed up Your Maven Builds

Как ускорить ваши Maven-сборки? «Поставить Gradle», — скажет кто-то. Ребята из Gradle считают иначе и даже подготовили статью на эту тему. По их мнению, в случае проблем со скоростью ваших сборок стоит присмотреться к профилям: возможно, некоторые плагины сильно замедляют сборку. С помощью профилей можно отключить часть плагинов для локальной или CI-сборки в зависимости от того, что вам нужно ускорить.

https://gradle.com/blog/five-ways-to-speed-up-your-apache-maven-builds/

👉@BookJava

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

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

Advancing AI by Accelerating Java on Parallel Architectures

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

https://inside.java/2024/10/23/java-and-ai/

👉@BookJava

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

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

⁉️ Открытый урок «Интернационализация и локализация в приложениях Spring»

🗓 25 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework» от Otus.

Узнайте, как эффективно реализовать интернационализацию и локализацию в Spring-приложениях.

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

✔️работу с классом Locale, использование MessageSource в Spring Boot и без него;
✔️ способы хранения и смены локали в веб-приложениях;
✔️ локализацию в шаблонах Thymeleaf и сообщений Bean Validation;
✔️ обсудим, почему не стоит локализовывать исключения;
✔️ проанализируем исходный код для лучшего понимания процессов.

🔗 Ссылка на регистрацию: https://vk.cc/cEyGrB

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

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

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

Т-Банк ищет Java-разработчиков уровня middle и senior

23 и 24 ноября можно пройти собеседование за выходные и получить оффер, если всем все понравится.

Вот что вас ждет в компании:

— Выстроенный процесс разработки и запуска проектов.
— Современный стек технологий — здесь быстро внедряют новое в работу.
— Разработка на актуальной версии Java.
— Баланс между использованием самописных и стандартных инструментов.
— Сильное комьюнити и обмен опытом на конференциях и митапах.

Узнайте больше и оставьте заявку до 20 ноября

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

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

Определение и отличие IP адресов LAN, PPP в Java

Чтобы определить IP-адрес локальной машины с использованием Java, примените следующий код:


import java.net.*;

public class GetIP {
public static void main(String[] args) throws UnknownHostException {
System.out.println(InetAddress.getLocalHost().getHostAddress());
}
}


Работа с несколькими сетевыми интерфейсами

Если ваш компьютер оснащён несколькими сетевыми интерфейсами, иногда бывает необходимо обойти весь список интерфейсов и отфильтровать адреса, не являющиеся обратными петлями и являющиеся локальными для сайта. Это особенно актуально при работе в средах с многочисленными сетями.


import java.net.*;
import java.util.*;

public class GetMultiIPs {
public static void main(String[] args) throws SocketException {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface iface = interfaces.nextElement();
if (iface.isLoopback() || !iface.isUp()) continue;

Enumeration<InetAddress> addresses = iface.getInetAddresses();
while(addresses.hasMoreElements()) {
InetAddress addr = addresses.nextElement();
if (addr instanceof Inet4Address) {
System.out.println(iface.getDisplayName() + " – " + addr.getHostAddress());
}
}
}
}
}


👉@BookJava

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

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

Mastering Java Streams: Полное руководство для разработчиков

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

https://dev.to/be11amer/mastering-java-streams-a-complete-guide-for-developers-495d

👉@BookJava

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

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

Примеры поведенческих шаблонов проектирования

🔴Цепочка обязанностей (Chain of responsibility) - Предназначен для организации в системе уровней ответственности.

🔴Команда (Command) - Представляет действие. Объект команды заключает в себе само действие и его параметры.

🔴Интерпретатор (Interpreter) - Решает часто встречающуюся, но подверженную изменениям, задачу.

🔴Итератор (Iterator) - Представляет собой объект, позволяющий получить последовательный доступ к элементам объекта-агрегата без использования описаний каждого + __из объектов, входящих в состав агрегации.

🔴Посредник (Mediator) - Обеспечивает взаимодействие множества объектов, формируя при этом слабую связанность и избавляя объекты от необходимости явно ссылаться друг на друга.

🔴Хранитель (Memento) - Позволяет, не нарушая инкапсуляцию зафиксировать и сохранить внутренние состояния объекта так, чтобы позднее восстановить его в этих состояниях.

🔴Наблюдатель (Observer) - Определяет зависимость типа «один ко многим» между объектами таким образом, что при изменении состояния одного объекта все зависящие от него оповещаются об этом событии.

🔴Состояние (State) - Используется в тех случаях, когда во время выполнения программы объект должен менять своё поведение в зависимости от своего состояния.

🔴Стратегия (Strategy) - Предназначен для определения семейства алгоритмов, инкапсуляции каждого из них и обеспечения их взаимозаменяемости.

🔴Шаблонный метод (Template method) - Определяет основу алгоритма и позволяет наследникам переопределять некоторые шаги алгоритма, не изменяя его структуру в целом.

🔴Посетитель (Visitor) - Описывает операцию, которая выполняется над объектами других классов. При изменении класса Visitor нет необходимости изменять обслуживаемые классы.

👉@BookJava

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

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

Советы по Spring 💡

Чтобы выполнять действия в транзакции базы данных, вы можете использовать шаблон Spring TransactionTemplate вместо @Transactional

👉@BookJava

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

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

Лучшие книги по Java


Основы Java:

1. "Head First Java" от Кэти Сьерра и Берт Бейтс
Эта книга предлагает уникальный подход к обучению с использованием визуальных элементов и интерактивных упражнений. Она идеально подходит для тех, кто только начинает изучать Java и хочет получить прочные основы. Книга написана в легком и доступном стиле, что делает процесс обучения увлекательным и эффективным.

2. "Java: A Beginner's Guide" от Герберта Шилдта
Герберт Шилдт — известный автор учебников по программированию, и его книга "Java: A Beginner's Guide" является отличным ресурсом для начинающих. В этой книге он подробно объясняет основные концепции Java, начиная с самых простых и заканчивая более сложными. Книга написана в доступном стиле и включает множество примеров кода.

3. "Effective Java" от Джошуа Блоха
Хотя эта книга не предназначена исключительно для новичков, она является незаменимым ресурсом для тех, кто хочет писать качественный и эффективный код на Java. Джошуа Блох делится своими рекомендациями и лучшими практиками, которые помогут вам избежать распространенных ошибок и улучшить качество вашего кода.

Продвинутый уровень:

1. "Java Concurrency in Practice" от Брайана Гетца и других авторов
Эта книга является обязательной для тех, кто хочет углубиться в тему многопоточности и конкурентного программирования на Java. Она охватывает все аспекты, начиная от базовых концепций и заканчивая сложными паттернами. Книга написана командой экспертов, что делает её особенно ценной.

2. "Clean Code: A Handbook of Agile Software Craftsmanship" от Роберта Мартина
Хотя эта книга не посвящена исключительно Java, она является важным ресурсом для любого программиста. Роберт Мартин делится своими принципами написания чистого и поддерживаемого кода. Книга написана в доступном стиле и включает множество примеров кода.

3. "Java Performance: The Definitive Guide" от Скотта Оукса
Эта книга поможет вам понять, как оптимизировать производительность ваших Java-приложений. Скотт Оукс объясняет, как измерять и улучшать производительность кода. Книга написана в доступном стиле и включает множество примеров кода.

👉@BookJava

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

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

👩‍💻 Пройди тест по Java

Проверь насколько хорошо ты знаешь Java и готов освоить 👩‍💻 Spring!

Ответишь — пройдешь на продвинутый курс "Разработчик на Spring Framework" от OTUS по специальной цене.

👉 ПРОЙТИ ТЕСТ: https://vk.cc/cE5WKC

🎫 Начни обучение со скидкой, подробности у менеджеров.

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

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