Java Библиотека | Мы в Телеграм
Java библиотека
Книги, статьи, мемы и многое другое для Java программиста!
По сотрудничеству и рекламе: https://t.me/NadikaKir или в ЛС сообщества ВК https://vk.com/javatutorial
Канал в перечне РКН: https://vk.cc/cJrT4A
Мы на бирже: https://telega.in/c/javalib/
Сообщество VK https://vk.com/javatutorial
- Channels in category
- 1 757
- This channel's rank
- № 65
Dashboard
19 October — 25 October 2026
Loading…
Key numbers
Audience growth
+3subscribers in the period
+2 biggest gain · 21 Oct 2026 −1 biggest loss · 23 Oct 2026
Quality index
68/ 100Medium
- Audience 10 of 25
- Growth integrity 25 of 25
- Ad load 20 of 20
- Trust 4 of 20
- Calculation reliability 8 of 10
IT and programming, 1K–5K subscribers · channels in the group: 40
Views and reach
6 932views in the period 0.9 %
Average post reach — 314 views (posts older than two days).
Subscriber engagement
0.43 %ER = reactions ÷ views0.0 pp
Citation index
0.1citation index
Place among similar channels — higher than 32 %. To reach the “high” level, the channel needs to overtake 18 more channels.
#32 508 in MAX · More — the “Mentions” tab
When and how much it posts
Post formats
Every post is a dot
Higher means more views, bigger means more reactions. Click a dot to open the post.
Period totals
Click a metric to see it across the period below
Ads in the channel
Top posts
By views for the period
Posts by day
Pale bars are days, the line is the 7-day average: you can see whether the channel is speeding up or slowing down
Data updated at 06:04 Moscow time. Views are the current counts of posts published on those days; average reach counts posts older than two days. How the quality index is calculated
Posts for the period
Loading…
Java Библиотека | Мы в Телеграм
long size = List.of("A", "B").stream()
.peek(System.out::println)
.count();
Печать здесь не гарантирована. Замена peek() на map(), возвращающий тот же элемент, не создаёт такой гарантии. Если действие обязательно для каждого элемента, вынесите его в обычный цикл или выберите подходящую терминальную операцию. Для последовательного обхода с понятным управлением ошибками цикл часто проще. peek удобно использовать для диагностики потока, но бизнес-операции не должны зависеть от его побочных эффектов. #Java
Java Библиотека | Мы в Телеграм
Java Библиотека | Мы в Телеграм
String[] parts = "app.log".split("\\.");
// [app, log]
Если разделитель приходит из переменной, используйте Pattern.quote:
String[] parts = line.split(Pattern.quote(separator), -1);
Отрицательный limit сохраняет пустые поля справа: у "a,b," их три, последнее — пустая строка. Без limit завершающие пустые элементы удаляются. Такой split подходит для простого текстового формата. Полноценный CSV с кавычками и запятыми внутри значений требует парсера CSV. #Java
Java Библиотека | Мы в Телеграм
var left = Set.of(1, 2, 3, 4);
var right = Set.of(3, 4, 5);
var intersection = new HashSet<>(left);
intersection.retainAll(right);
System.out.println(intersection); // элементы 3 и 4
Порядок вывода HashSet не гарантирован. Вызов retainAll на неизменяемом множестве вроде Set.of(...) завершится UnsupportedOperationException. Возвращаемый boolean сообщает, изменилась ли коллекция, а не является ли пересечение непустым. #Java
Java Библиотека | Мы в Телеграм
Objects.requireNonNull(user, "user");
Objects.requireNonNull(user.getName(), "user.name");
Для сравнения двух nullable-значений используйте Objects.equals(a, b). Вызов "ready".equals(value) тоже безопасен для nullable value. String.valueOf(obj) для null-ссылки типа Object вернёт строку "null". Это удобно при диагностике, но не исправляет отсутствующие бизнес-данные. Optional может выразить отсутствие результата. @Nullable и @NotNull полезны анализаторам и фреймворкам, однако сами по себе не заставляют JVM проверять каждый вызов. Если метод возвращает коллекцию, обычно проще вернуть пустую коллекцию. #Java
Java Библиотека | Мы в Телеграм
Java Библиотека | Мы в Телеграм
Java Библиотека | Мы в Телеграм
Java Библиотека | Мы в Телеграм
<Configuration>
<Appenders>
<Console name="out" target="SYSTEM_OUT">
<PatternLayout pattern="%level %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="out"/>
</Root>
</Loggers>
</Configuration>
Для ротации файлов в Log4j 2 используйте RollingFile с политикой ротации. Примеры с DailyRollingFileAppender из Log4j 1 нельзя переносить в конфигурацию Log4j 2 без изменений. #Java
Java Библиотека | Мы в Телеграм
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…