☕ Java25 уже на подходе!
В свежем релизе — важные улучшения, о которых стоит знать каждому Java-разработчику:
🔹 JEP 502: Stable Values — новый способ работы со значениями, который делает код надёжнее и эффективнее.
🔹 JEP 514/515: Project Leyden — фокус на время запуска приложений и оптимизацию старта JVM.
📖 Подробный разбор:
https://softwaremill.com/jep-502-stable-values-new-feature-of-java-25-explained/
#Java #JEP #Leyden #Programming
В свежем релизе — важные улучшения, о которых стоит знать каждому Java-разработчику:
🔹 JEP 502: Stable Values — новый способ работы со значениями, который делает код надёжнее и эффективнее.
🔹 JEP 514/515: Project Leyden — фокус на время запуска приложений и оптимизацию старта JVM.
📖 Подробный разбор:
https://softwaremill.com/jep-502-stable-values-new-feature-of-java-25-explained/
#Java #JEP #Leyden #Programming
❤12👍2🔥1
☕ Java Tip: рекурсивный обход файловой системы
В Java есть удобный способ рекурсивно обойти все файлы в директории - метод
Он возвращает Stream<Path>, что позволяет легко фильтровать и обрабатывать файлы через Stream API.
Пример - найти все
Что происходит:
• Files.walk(startPath) - рекурсивно проходит по всем папкам
• filter(Files::isRegularFile) - оставляет только файлы
• endsWith(".java") - фильтр по расширению
• forEach - обработка найденных файлов
Это намного чище, чем писать собственную рекурсивную функцию обхода директорий.
#Java #JavaDev #Programming
⚡️ Полезные ресурсы по Java 🚀 Max
@javatg
В Java есть удобный способ рекурсивно обойти все файлы в директории - метод
Files.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
❤4👍2🔥2
☕ Java совет: сравнение времени без ловушек точности
Иногда при сравнении времени в Java проверки равенства могут неожиданно падать, потому что значения отличаются на миллисекунды или наносекунды.
Например:
Если сравнивать напрямую, они разные.
Но если вам важна точность до минуты, это можно легко исправить.
Используйте Instant.truncatedTo():
Метод truncatedTo() обрезает время до нужной точности:
• ChronoUnit.MINUTES
• ChronoUnit.HOURS
• ChronoUnit.DAYS
Это помогает избежать проблем, когда значения отличаются только в миллисекундах или наносекундах.
Полезно для:
• логов
• временных окон
• аналитики
• дедупликации событий
Маленький приём —
но часто спасает от неочевидных багов в time-логике.
#Java #JavaDev #Backend #Programming
⚡️ Полезные ресурсы по Java 🚀 Max
@java_library
Иногда при сравнении времени в Java проверки равенства могут неожиданно падать, потому что значения отличаются на миллисекунды или наносекунды.
Например:
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
⚡️ Полезные ресурсы по Java 🚀 Max
@java_library
❤3👍3🔥1