Java Books
Java Библиотека По всем вопросам- @notxxx1 @ai_machinelearning_big_data - machine learning @pythonl - Python @itchannels_telegram - 🔥 best it channels @ArtificialIntelligencedl - AI @pythonlbooks-📚 @programming_books_it -it 📚 № 5032728887
Ko'proq ko'rsatish📈 Telegram kanali Java Books analitikasi
Java Books (@java_library) kanali faol ishtirokchi. Hozirda hamjamiyat 14 215 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 8 752-o'rinni va Rossiya mintaqasida 45 718-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 14 215 obunachiga ega bo‘ldi.
26 Avgust, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -61 ga, so‘nggi 24 soatda esa -6 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 9.15% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 3.73% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 1 300 marta ko‘riladi; birinchi sutkada odatda 530 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 4 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent docker, собеседование, sql, boot, string kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Java Библиотека
По всем вопросам- @notxxx1
@ai_machinelearning_big_data - machine learning
@pythonl - Python
@itchannels_telegram - 🔥 best it channels
@ArtificialIntelligencedl - AI
@pythonlbooks-📚
@programming_books_it -it 📚
№ 503272888...”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 27 Avgust, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserDTO {
private String name;
private int age;
}
Теперь Jackson просто игнорирует лишние поля вместо того, чтобы ломать приложение.
Полезно, когда API живёт долго, клиенты обновляются быстрее бэка, а ломать совместимость нельзя.getClass() в Java?
Нет, нельзя.
Метод getClass() в java.lang.Object объявлен так:
public final native Class<?> getClass();
📌 Почему:
- final — запрещает переопределение в наследниках.
- native — реализован в JVM, а не на Java.
- Гарантирует, что при вызове obj.getClass() всегда вернётся реальный класс объекта, без подмен и сюрпризов.
💡 Если хотите вернуть “свой” тип, делайте отдельный метод:
class MyClass {
public String getTypeName() {
return "CustomType";
}
}
⚠️ Переопределяемый getClass() сломал бы рефлексию, сериализацию и кучу системных механизмов. Именно поэтому Java защищает его.PipedOutputStream используется для организации потоковой передачи данных между потоками.
Он работает совместно с PipedInputStream. Один поток записывает данные в PipedOutputStream, а другой считывает их из соответствующего PipedInputStream.
Это позволяет организовать обмен данными между потоками по принципу "производитель-потребитель".
Для связи PipedOutputStream и PipedInputStream нужно использовать метод connect().
Метод write() используется для записи данных, как и в обычных потоках вывода.
PipedOutputStream полезен, когда нужен простой способ организовать обмен данными между потоками в одной программе.
Он часто используется для подключения вывода одного потока к вводу другого.
#это_база
Instant a = Instant.parse("2025-10-01T10:42:11Z");
Instant b = Instant.parse("2025-10-01T10:42:44Z");
Если сравнивать напрямую, они разные.
Но если вам важна точность до минуты, это можно легко исправить.
Используйте Instant.truncatedTo():
boolean sameMinute =
a.truncatedTo(ChronoUnit.MINUTES)
.equals(b.truncatedTo(ChronoUnit.MINUTES));
System.out.println(sameMinute); // true
Метод truncatedTo() обрезает время до нужной точности:
• ChronoUnit.MINUTES
• ChronoUnit.HOURS
• ChronoUnit.DAYS
Это помогает избежать проблем, когда значения отличаются только в миллисекундах или наносекундах.
Полезно для:
• логов
• временных окон
• аналитики
• дедупликации событий
Маленький приём —
но часто спасает от неочевидных багов в time-логике.
#Java #JavaDev #Backend #Programming
🚀 MaxFiles.walk().
Он возвращает Stream<Path>, что позволяет легко фильтровать и обрабатывать файлы через Stream API.
Пример - найти все .java файлы в папке src:
import java.io.IOException;
import java.nio.file.*;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
Path startPath = Paths.get("src");
try (Stream<Path> paths = Files.walk(startPath)) {
paths
.filter(Files::isRegularFile)
.filter(path -> path.toString().endsWith(".java"))
.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Что происходит:
• Files.walk(startPath) - рекурсивно проходит по всем папкам
• filter(Files::isRegularFile) - оставляет только файлы
• endsWith(".java") - фильтр по расширению
• forEach - обработка найденных файлов
Это намного чище, чем писать собственную рекурсивную функцию обхода директорий.
#Java #JavaDev #Programming
⚡️ Полезные ресурсы по Java 🚀 Max
@javatg
@Bean
public CommonsRequestLoggingFilter logFilter() {
CommonsRequestLoggingFilter filter = new CommonsRequestLoggingFilter();
filter.setIncludeQueryString(true);
filter.setIncludeHeaders(true);
filter.setIncludePayload(true);
filter.setMaxPayloadLength(1000);
filter.setAfterMessagePrefix("COMPLETE REQUEST: ");
return filter;
}
Но есть важная проблема.
В production такие логи могут случайно сохранить чувствительные данные пользователей.
Например:
POST /login
{
"username": "john",
"password": "mypassword"
}
Если включено логирование payload, такие данные могут попасть в:
• application logs
• log-агрегаторы
• мониторинг системы
А это уже серьёзная уязвимость безопасности.
Поэтому правило простое:
- включайте publish-request-params только в dev
- никогда не логируйте request body в production
- маскируйте чувствительные поля (`password`, token, `authorization`)
Маленькая настройка -
но может привести к утечке данных.
#SpringBoot #Java #Backend #Securityspring.jpa.hibernate.ddl-auto=validate
Что это даёт:
- Приложение проверяет, совпадает ли схема БД с entity
- Если есть расхождения — сервис не запустится
- Никаких случайных изменений структуры в продакшене
Идеальный сценарий - использовать вместе с Flyway или Liquibase:
spring.jpa.hibernate.ddl-auto=validate
spring.flyway.enabled=true
Что в итоге:
- Все изменения БД — только через migration-скрипты
- Fail fast, если схема и код не совпадают
- Меньше сюрпризов после деплоя
Это один из тех параметров, которые могут спасти продакшен от тихих и очень дорогих ошибок.
#SpringBoot #JavaDev