Java Portal | Программирование
11.6K subscribers
1.57K photos
118 videos
45 files
1.62K links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
99% Java-разработчиков хотя бы раз допускали эту ошибку.

Всё работает... пока однажды не перестаёт. Использование == для сравнения String может казаться правильным во время тестирования из-за String interning, но такой код может сломаться, когда значения приходят из базы данных, REST API или пользовательского ввода.

Самое безопасное правило простое: Используйте .equals() для сравнения значений.

Ставьте константу первой:
"SUCCESS".equals(status)


Так вы избежите NullPointerException, даже если status == null. Такие небольшие привычки помогают предотвращать реальные баги в production.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
💡 Java: сортируйте с помощью Comparator.comparing() и забудьте про громоздкий compare()

Сортировка по полю в одну строку
Используйте .thenComparing(...) для дополнительной сортировки при одинаковых значениях
Работает с method references, например User::getLastName

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Вайбкодим «Полный путь разработки AI-агентов: от MCP до Agentic RAG»

Образовательная программа на Stepik по разработке современных AI-агентов.

Начинаем с Model Context Protocol: создаём MCP-серверы, подключаем инструменты и внешние API, а затем переходим к разработке Agentic RAG-систем с памятью, рассуждением, поиском знаний и оценкой качества.

• Model Context Protocol и MCP-серверы
• LangChain, LangGraph, LlamaIndex
• API, инструменты, ресурсы и промпты
• Классический RAG → Agentic RAG
• ReAct, память и планирование
• Графы знаний и свои инструменты
• Трассировка и подготовка к production

Успей, скидка 20% действует 48 часов

↗️ Начать обучение на Stepik
Please open Telegram to view this post
VIEW IN TELEGRAM
2🤣1
Если бы пришлось заново начинать свой путь в Java в 2026 году, я бы придерживался такого roadmap:

1. Java Fundamentals
• Syntax
• Data Types
• Control Flow
• Methods

2. Object-Oriented Programming
• Encapsulation
• Inheritance
• Polymorphism
• Abstraction

3. Core Java APIs
• Collections
• Generics
• Streams
• Exception Handling

4. Multithreading
• Threads
• Executors
• Synchronization
• CompletableFuture

5. Databases
• SQL
• JDBC
• Transactions
• Connection Pooling

6. Spring Boot
• Dependency Injection
• REST APIs
• Validation
• Configuration

7. Enterprise Development
• JPA/Hibernate
• Spring Security
• JWT
• Logging

8. Testing
• JUnit
• Mockito
• Integration Tests
• Testcontainers

9. Build & Deploy
• Maven/Gradle
• Git
• Docker
• CI/CD

10. Advanced Topics
• Microservices
• Redis
• Kafka
• Design Patterns
• System Design

Самая большая ошибка, которую часто допускают разработчики? Начинают изучать frameworks до того, как освоят Core Java. Разработчик, который хорошо понимает Java, сможет разобраться практически с любым framework. В обратную сторону это работает гораздо сложнее.

Сохраняйте roadmap и на каждом этапе делайте хотя бы один реальный проект. Именно так теория превращается в практические навыки.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74
💡 Java/Spring: отдавайте предпочтение constructor injection вместо @Autowired для полей.

Field injection скрывает обязательные dependencies
Constructor injection делает зависимости явными
Проще писать тесты: можно передать mocks напрямую, без запуска Spring context

#Java #SpringBoot

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Шпаргалка по проектированию веб систем System Design 101

Подробное руководство по архитектуре веб‑сервисов, которое обязательно стоит сохранить. Это перевод статьи от ByteByteGo опубликованный на Хабре

Сохраняем за лайк ❤️

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁85
Java-разработчики:

Почему ArrayList увеличивает свою ёмкость примерно на 50%, когда заканчивается свободное место? Почему бы просто не удваивать capacity?

И какой здесь компромисс между расходом памяти и производительностью при resize?

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Java-разработчики, знаете разницу между Shallow Copy и Deep Copy?

Вы копируете объект, но что именно создаётся — независимая копия объекта или копия ссылок на вложенные объекты?

Shallow copy копирует ссылки на объекты, поэтому вложенные объекты продолжают указывать на те же области памяти. Deep copy создаёт новый объект и рекурсивно копирует всё его содержимое.

То есть shallow copy копирует структуру со ссылками на вложенные объекты, а deep copy создаёт независимую копию всего дерева объектов.

Вот пример на Java

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Готовимся к System Design интервью уровня Middle и Senior

Полезный конспект по проектированию масштабируемых систем по книге Алекса Сюй System Design Interview.

Схемы, объяснения архитектурных решений и разборы популярных задач: от сокращения ссылок и ограничения частоты запросов до проектирования чатов и распределённых сервисов.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Java-разработчики, в чём разница между volatile и synchronized?

Многие используют их. Но все ли понимают, как они связаны с кешем CPU, видимостью изменений в памяти, атомарностью и взаимным исключением?

volatile гарантирует видимость изменений между потоками. synchronized обеспечивает видимость и взаимное исключение: критическую секцию под одним и тем же монитором может выполнять только один поток за раз.

Вопрос: два потока выполняют count++, а переменная count объявлена как volatile. Потокобезопасен ли такой код? Почему?

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
1