Java Portal | Программирование
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика Связь: @devmangx РКН: https://clck.ru/3H4WUg
Show more📈 Analytical overview of Telegram channel Java Portal | Программирование
Channel Java Portal | Программирование (@java_iibrary) in the Russian language segment is an active participant. Currently, the community unites 12 132 subscribers, ranking 10 377 in the Technologies & Applications category and 54 419 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 12 132 subscribers.
According to the latest data from 05 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -142 over the last 30 days and by -1 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 11.75%. Within the first 24 hours after publication, content typically collects 6.20% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 426 views. Within the first day, a publication typically gains 753 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 4.
- Thematic interests: Content is focused on key topics such as boot, string, void, архитектура, resttemplate.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика
Связь: @devmangx
РКН: https://clck.ru/3H4WUg”
Thanks to the high frequency of updates (latest data received on 07 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
Instant.now().
✅Duration показывает временной интервал между двумя Instant (в секундах, миллисекундах, наносекундах).
Вот пример:
Instant start = Instant.now();
...
Instant end = Instant.now();
Duration elapsed = Duration.between(start, end);
👉 Java PortalМультиплексирование на уровне HTTP, сериализация на уровне TCP Общий порядок доставки и контроль перегрузки (TCP) Одна TCP-сессия HTTP/2 фреймы (мультиплексированные) * HEADERS (поток 1) * HEADERS (поток 3) * HEADERS (поток 2) * DATA (поток 1) * DATA (поток 3) * DATA (поток 2) TCP-пакеты: P1, P2, P3, P4, P5 TCP-пакеты смешивают данные из разных потоков HoL-блокировка в TCP (Head-of-Line): потеря одного пакета блокирует все потоки Клиент -> Сервер▪️HTTP/3
Мультиплексирование на транспортном уровне (QUIC) * Независимые потоки * Независимый порядок доставки и восстановление QUIC-соединение (поверх UDP) QUIC Stream 1: QUIC Packet, QUIC Packet, QUIC Packet QUIC Stream 2: QUIC Packet, QUIC Packet QUIC Stream 3: QUIC Packet, QUIC Packet Нет HoL-блокировки: потеря пакета влияет только на один поток Клиент -> Сервер👉 Java Portal
FetchType.EAGER, если реально нет необходимости.
✗ Помечая связь как EAGER, ты говоришь ORM подгружать её каждый раз вместе с сущностью, даже если ты вообще не обращаешься к этой связи (не вызываешь геттер/метод отношения).
✗ В этом примере каждый раз, когда ты загружаешь Order, ORM автоматически подтянет и Customer:
@Entity
class Order {
@ManyToOne(fetch = FetchType.EAGER)
private Customer customer;
}
✗ И ещё: если не делать явный fetch, получаешь классический эффект N+1:
1. Один запрос на все Orders
2. По одному запросу на каждый Order для Customers
👉 Java Portal@RestController
@RequestMapping("/api/orders")
public class OrderController {
@Autowired
private OrderRepository orderRepository;
@Autowired
private ProductRepository productRepository;
@PostMapping
public ResponseEntity<?> createOrder(@RequestBody CreateOrderRequest request) {
// Validation logic
if (request.getProductId() == null || request.getQuantity() <= 0) {
return ResponseEntity
.badRequest()
.body("Invalid request");
}
// Business logic
Product product = productRepository.findById(request.getProductId())
.orElse(null);
if (product == null) {
return ResponseEntity
.status(HttpStatus.NOT_FOUND)
.body("Product not found");
}
if (product.getStock() < request.getQuantity()) {
return ResponseEntity
.badRequest()
.body("Not enough stock");
}
BigDecimal totalPrice = product.getPrice()
.multiply(BigDecimal.valueOf(request.getQuantity()));
if (totalPrice.compareTo(new BigDecimal("10000")) > 0) {
return ResponseEntity
.badRequest()
.body("Order limit exceeded");
}
// Persistence + transaction logic
product.setStock(product.getStock() - request.getQuantity());
productRepository.save(product);
Order order = new Order();
order.setProduct(product);
order.setQuantity(request.getQuantity());
order.setTotalPrice(totalPrice);
order.setCreatedAt(LocalDateTime.now());
orderRepository.save(order);
return ResponseEntity
.status(HttpStatus.CREATED)
.body(order.getId());
}
}
👉 Java PortalJava.hasChosen(you)🥶😟 Почему Java всё ещё №1 в автотестах? Стас Васенков, основатель школы автотестировщиков @qa_guru, расскажет про свой мэтч с Java. Чем его зацепил этот язык и куда привёл. И куда Java может привести вас. Приходите на открытый эфир ➡ 27 января ➡ 13:00 (МСК) Что будет: — неочевидные карьерные сценарии — внутрянка: какой стек ждут, когда ищут автоматизатора — кому Java уже не поможет 🐹 Не откладываем в TODO ➡ webinar.join();
<!-- Так лучше НЕ делать: wildcard-исключение (фактически “вырубаем всё”) -->
<exclusions>
<exclusion>
<!-- * = любой groupId -->
<groupId>*</groupId>
<!-- * = любой artifactId -->
<artifactId>*</artifactId>
</exclusion>
</exclusions>
<!-- Лучше: исключать конкретную транзитивную зависимость явно -->
<exclusion>
<!-- точный groupId зависимости, которую исключаем -->
<groupId>org.apache.tomcat.embed</groupId>
<!-- точный artifactId зависимости, которую исключаем -->
<artifactId>tomcat-embed-websocket</artifactId>
</exclusion>
👉 Java Portal// Old way:
String season;
switch (month) {
case 12:
case 1:
case 2:
season = "Winter";
break;
case 3:
case 4:
case 5:
season = "Spring";
break;
default:
season = "Invalid";
}
// New switch expression:
String season = switch (month) {
case 12, 1, 2 -> "Winter";
case 3, 4, 5 -> "Spring";
default -> "Invalid";
};
👉 Java PortalPOST25»: открыть курс на StepikHashMap внутри реализован как хеш-таблица, и в среднем put(), get() и remove() работают за O(1).
🪲Он не потокобезопасный (если нужна thread-safety, используй ConcurrentHashMap).
Пример:
Map<String, Integer> ages = new HashMap<>();
// Добавляем данные
ages.put("Michael", 31);
ages.put("Lisa", 25);
ages.put("Alice", 42);
// Поиск
System.out.println("Возраст Lisa: " + ages.get("Lisa"));
// Удаление
ages.remove("Alice");
// Итерация
for (Map.Entry<String, Integer> entry : ages.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
👉 Java Portalreturn вместо глубокой вложенности
4. Избегай длинных списков параметров
5. Делай функции маленькими и сфокусированными
6. Соблюдай DRY (Don’t Repeat Yourself) — не дублируй код
7. Применяй принцип KISS (Keep It Simple, Stupid) — делай проще
8. Отдавай предпочтение композиции, а не наследованию
9. Комментируй только там, где это действительно необходимо
10. Пиши хорошие сообщения к коммитам
Какие еще правила чистого кода ты бы добавил в этот список?
👉 Java Portal// With immutable objects:
record Book(String title, int price) {} //Immutable
public class BookJob implements Runnable {
private final Book book;
....//constructor
@Override
public void run() {
System.out.println(book.title() + " " + book.price());
}
}
// Exchanging messages:
...
new Thread(() -> {
try {
queue.put("mess1");
} catch (InterruptedException e) {}
}).start();
...
new Thread(() -> {
try {
String mess = queue.take();
} catch (InterruptedException e) {}
}).start();
👉 Java Portal.. Список поддерживает поиск, чтобы быстрее находить нужное.
👉 Java Portal
Available now! Telegram Research 2025 — the year's key insights 
