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

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
Разница между Java и JavaScript

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣5
Как HashMap устроен внутри

• Вычисляет хеш ключа.
• Определяет индекс корзины во внутреннем массиве.
• Сохраняет запись в узле с хешем, ключом и значением.
• При коллизиях использует связный список, а начиная с Java 8 при определённых условиях преобразует его в красно-чёрное дерево.

Если такой ключ уже существует, put() заменяет его значение.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Java, Spring Boot, React, микросервисы… А чем веб-сервер отличается от сервера приложений?

У кандидата в резюме несколько full-stack проектов и внушительный стек. Но простой вопрос на собеседовании поставил его в тупик.

• Веб-сервер принимает HTTP-запросы, отдаёт статические файлы и может перенаправлять запросы приложению как reverse proxy. Примеры: Nginx, Apache HTTP Server.

• Сервер приложений предоставляет среду для выполнения приложения и его бизнес-логики. В экосистеме Java примеры — WildFly и Payara.

При этом граница не строгая: сервер приложений может сам принимать HTTP-запросы. Например, Spring Boot со встроенным Tomcat способен обслуживать их без отдельного Nginx, хотя Tomcat точнее называть контейнером сервлетов.

Собрать проект из десяти технологий полезно. Понимать, за что отвечает каждая, — не менее важно.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
3 бесплатных ресурса для изучения Java

• Effective Java — конспект — основные идеи книги Джошуа Блоха о том, как писать качественный Java-код.
• Java Design Patterns — паттерны проектирования с объяснениями и примерами реализации на Java.
• Подготовка к собеседованиям — алгоритмы, структуры данных и примеры решений на Java.

Сохраняйте, чтобы вернуться к практике

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Java-совет: делайте строки понятнее с String.format()

Если сообщение состоит из множества фрагментов и переменных, шаблон может быть удобнее цепочки +:

String message = String.format(
"Пользователь %s оформил %d заказов",
name, orderCount
);


✅ Шаблон отделён от значений.
✅ Проще менять структуру сообщения и добавлять поля.
✅ Для локализуемых сообщений с числами и датами пригодится MessageFormat.

Для простых строк конкатенация вполне уместна: выбирайте форматирование ради читаемости, а не скорости.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Описывайте состояния через enum вместо строк

Именованные константы помогают избежать опечаток в статусах и явно задают набор состояний.

✅ Используйте PENDING, APPROVED, REJECTED вместо произвольных строк.
✅ Держите правила допустимых переходов рядом с описанием состояний.
✅ Используйте проверку полноты switch, если язык и выбранная конструкция её поддерживают.

Но enum сам по себе не запрещает неверные переходы — эту логику нужно реализовать отдельно.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Почему большинство объектов в Java «умирают молодыми»?

Приложение может создавать миллионы объектов:

for (int i = 0; i < 1_000_000; i++) {
User user = new User();
}


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

На этом наблюдении основана слабая поколенческая гипотеза: большинство объектов живут недолго. Поколенческие сборщики мусора используют её так:

• Новые объекты обычно размещаются в молодом поколении.
• Оно очищается чаще: сборщик сохраняет выжившие объекты и освобождает остальную память.
• Достаточно долго живущие объекты переводятся в старое поколение, которое собирается реже.

Так GC может освобождать память короткоживущих объектов, не обрабатывая каждый раз всю кучу.

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