⚙️ AnsiConsole.out.println()
AnsiConsole.out.println() из библиотеки Jansi позволяет выводить цветной текст в консоль, упрощая создание стилизованных CLI-приложений с поддержкой ANSI-escape последовательностей.
🔗 Документация (https://fusesource.github.io/jansi)
👩💻
@javaquiz
AnsiConsole.out.println() из библиотеки Jansi позволяет выводить цветной текст в консоль, упрощая создание стилизованных CLI-приложений с поддержкой ANSI-escape последовательностей.
🔗 Документация (https://fusesource.github.io/jansi)
👩💻
@javaquiz
👍1
⚙️ Optional.orElseThrow()
Optional.orElseThrow() — это метод, который выбрасывает исключение, если Optional пуст. В отличие от orElse(), он не требует значения по умолчанию, а вместо orElseGet() не создаёт ненужные объекты.
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Optional.html#orElseThrow())
👩💻
@javaquiz
Optional.orElseThrow() — это метод, который выбрасывает исключение, если Optional пуст. В отличие от orElse(), он не требует значения по умолчанию, а вместо orElseGet() не создаёт ненужные объекты.
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Optional.html#orElseThrow())
👩💻
@javaquiz
⚙️ MethodHandles.lookup().findVirtual()
MethodHandles.lookup().findVirtual() позволяет динамически получать и вызывать методы классов без рефлексии, обеспечивая лучшую производительность и безопасность. Это полезно для метапрограммирования и динамических вызовов.
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/MethodHandles.Lookup.html#findVirtual(java.lang.Class,java.lang.String,java.lang.invoke.MethodType))
👩💻
@javaquiz
MethodHandles.lookup().findVirtual() позволяет динамически получать и вызывать методы классов без рефлексии, обеспечивая лучшую производительность и безопасность. Это полезно для метапрограммирования и динамических вызовов.
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/MethodHandles.Lookup.html#findVirtual(java.lang.Class,java.lang.String,java.lang.invoke.MethodType))
👩💻
@javaquiz
👍1
ООП: худшее, что случалось с программированием
Смотреть статью ()
👩💻
@javaquiz
https://habr.com/ru/articles/885980/
Смотреть статью ()
👩💻
@javaquiz
https://habr.com/ru/articles/885980/
Хабр
ООП: худшее, что случалось с программированием
Если бы строили так, как пишут код ООП. В этой статье попробуем разобраться, почему ООП — худшее, что было придумано в программировании, как оно стало таким популярным, почему опытные программисты...
⚙️ VarHandle.compareAndExchange()
VarHandle.compareAndExchange() позволяет атомарно обновлять значения переменной, только если текущее значение соответствует ожидаемому. Это полезно для реализации lock-free структур данных и многопоточной синхронизации.
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#compareAndExchange(T,...))
👩💻
@javaquiz
VarHandle.compareAndExchange() позволяет атомарно обновлять значения переменной, только если текущее значение соответствует ожидаемому. Это полезно для реализации lock-free структур данных и многопоточной синхронизации.
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#compareAndExchange(T,...))
👩💻
@javaquiz
⚙️ FileDenoscriptor.sync()
FileDenoscriptor.sync() в Java позволяет принудительно записать все несохранённые данные из буфера операционной системы на диск. Это полезно для обеспечения целостности данных в случае сбоя или отключения питания.
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/FileDenoscriptor.html#sync())
👩💻
@javaquiz
FileDenoscriptor.sync() в Java позволяет принудительно записать все несохранённые данные из буфера операционной системы на диск. Это полезно для обеспечения целостности данных в случае сбоя или отключения питания.
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/FileDenoscriptor.html#sync())
👩💻
@javaquiz
⚙️ ProcessBuilder.redirectOutput()
ProcessBuilder.redirectOutput() позволяет перенаправлять стандартный вывод (stdout) запускаемого процесса в файл или в другой поток. Это полезно при работе с внешними процессами и логированием их вывода.
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/ProcessBuilder.html#redirectOutput(java.io.File))
👩💻
@javaquiz
ProcessBuilder.redirectOutput() позволяет перенаправлять стандартный вывод (stdout) запускаемого процесса в файл или в другой поток. Это полезно при работе с внешними процессами и логированием их вывода.
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/ProcessBuilder.html#redirectOutput(java.io.File))
👩💻
@javaquiz
👍1
⚙️ Micronaut
Micronaut — это лёгкий фреймворк для микросервисов, который быстро стартует, потребляет мало памяти и поддерживает компиляцию в нативные образы через GraalVM.
🔗 Документация (https://micronaut.io/)
👩💻
@javaquiz
Micronaut — это лёгкий фреймворк для микросервисов, который быстро стартует, потребляет мало памяти и поддерживает компиляцию в нативные образы через GraalVM.
🔗 Документация (https://micronaut.io/)
👩💻
@javaquiz
⚙️ InetAddress.getByAddress()
InetAddress.getByAddress() позволяет создать IP-адрес вручную из массива байтов, без необходимости использования DNS-резолвера. Это полезно для работы с сетевыми протоколами и тестирования.
👩💻
@javaquiz
InetAddress.getByAddress() позволяет создать IP-адрес вручную из массива байтов, без необходимости использования DNS-резолвера. Это полезно для работы с сетевыми протоколами и тестирования.
👩💻
@javaquiz
⚙️ Thread.getAllStackTraces()
Thread.getAllStackTraces() позволяет получить стек вызовов всех активных потоков. Это полезно для отладки многопоточных программ и анализа зависших потоков.
👩💻
@javaquiz
Thread.getAllStackTraces() позволяет получить стек вызовов всех активных потоков. Это полезно для отладки многопоточных программ и анализа зависших потоков.
👩💻
@javaquiz
👍1
👀 Мониторинг использования памяти с MemoryMXBean
В Java можно отслеживать текущее потребление памяти JVM с помощью MemoryMXBean. Это полезно для диагностики утечек памяти и анализа работы сборщика мусора.
✔️ Использование ManagementFactory.getMemoryMXBean() позволяет получить информацию о потреблении памяти в реальном времени.
👩💻
@javaquiz
В Java можно отслеживать текущее потребление памяти JVM с помощью MemoryMXBean. Это полезно для диагностики утечек памяти и анализа работы сборщика мусора.
✔️ Использование ManagementFactory.getMemoryMXBean() позволяет получить информацию о потреблении памяти в реальном времени.
👩💻
@javaquiz
👍1
⚙️ Thread.sleep(Duration)
Thread.sleep(Duration) (Java 9+) позволяет приостанавливать выполнение потока на заданное время с использованием Duration, что делает код более читаемым и удобным.
👩💻
@javaquiz
Thread.sleep(Duration) (Java 9+) позволяет приостанавливать выполнение потока на заданное время с использованием Duration, что делает код более читаемым и удобным.
👩💻
@javaquiz
⚙️ Cleaner.register()
Cleaner.register() позволяет выполнять код очистки перед удалением объекта сборщиком мусора. Это полезно для освобождения нативных ресурсов без явного вызова close().
👩💻
@javaquiz
Cleaner.register() позволяет выполнять код очистки перед удалением объекта сборщиком мусора. Это полезно для освобождения нативных ресурсов без явного вызова close().
👩💻
@javaquiz
👍3
⚙️ LockSupport.parkNanos()
LockSupport.parkNanos() позволяет приостанавливать поток на заданное количество наносекунд, обеспечивая более точный контроль пауз по сравнению с Thread.sleep().
👩💻
@javaquiz
LockSupport.parkNanos() позволяет приостанавливать поток на заданное количество наносекунд, обеспечивая более точный контроль пауз по сравнению с Thread.sleep().
👩💻
@javaquiz
👍1
⚙️ Arrays.mismatch()
Arrays.mismatch() сравнивает два массива и возвращает индекс первого несовпадающего элемента. Это полезно для эффективного поиска различий между данными.
👩💻
@javaquiz
Arrays.mismatch() сравнивает два массива и возвращает индекс первого несовпадающего элемента. Это полезно для эффективного поиска различий между данными.
👩💻
@javaquiz
👍4
⚙️ ProcessHandle.descendants()
ProcessHandle.descendants() возвращает поток потомков (дочерних процессов) данного процесса. Это полезно для мониторинга и управления иерархией процессов, например, при запуске подпроцессов через ProcessBuilder.
👩💻
@javaquiz
ProcessHandle.descendants() возвращает поток потомков (дочерних процессов) данного процесса. Это полезно для мониторинга и управления иерархией процессов, например, при запуске подпроцессов через ProcessBuilder.
👩💻
@javaquiz
🔥1
⚙️ Character.getType()
Character.getType() возвращает тип символа по его Unicode-категории, например, буква, цифра, пунктуация и т.д. Это полезно для фильтрации и анализа текста, особенно в мульти-язычных или валидационных системах.
👩💻
@javaquiz
Character.getType() возвращает тип символа по его Unicode-категории, например, буква, цифра, пунктуация и т.д. Это полезно для фильтрации и анализа текста, особенно в мульти-язычных или валидационных системах.
👩💻
@javaquiz
👍2
⚙️ System.mapLibraryName()
System.mapLibraryName() преобразует логическое имя нативной библиотеки в платформозависимое. Это полезно при динамической загрузке .dll, .so или .dylib файлов в кроссплатформенных Java-приложениях.
👩💻
@javaquiz
System.mapLibraryName() преобразует логическое имя нативной библиотеки в платформозависимое. Это полезно при динамической загрузке .dll, .so или .dylib файлов в кроссплатформенных Java-приложениях.
👩💻
@javaquiz
⚙️ Class.getCanonicalName()
Class.getCanonicalName() возвращает полное каноническое имя класса, включая вложенность. Это полезно для логирования, сериализации, генерации кода и анализа структуры сложных приложений.
👩💻
@javaquiz
Class.getCanonicalName() возвращает полное каноническое имя класса, включая вложенность. Это полезно для логирования, сериализации, генерации кода и анализа структуры сложных приложений.
👩💻
@javaquiz
⚙️ Module.getPackages()
Module.getPackages() возвращает множество имён пакетов, принадлежащих модулю. Это полезно при динамическом анализе модульной структуры и рефлексии в Java 9+.
👩💻
@javaquiz
Module.getPackages() возвращает множество имён пакетов, принадлежащих модулю. Это полезно при динамическом анализе модульной структуры и рефлексии в Java 9+.
👩💻
@javaquiz
Представь, что тебя связали, кинули в багажник и увезли в ангар за городом
Похититель наклоняется к твоему уху и шепчет: "Или ты правильно отвечаешь на 3 вопроса, или пуля летит тебе прямиком в висок:"
Похититель наклоняется к твоему уху и шепчет: "Или ты правильно отвечаешь на 3 вопроса, или пуля летит тебе прямиком в висок:
🧷 Почему @Transactional в Spring не работает, если вызвать метод внутри того же класса?
🧷 Почему Kafka с exactly-once семантикой в 3 раза медленнее обычной и когда можно на это забить?
🧷 2 запроса одновременно читают баланс 1000₽, вычитают по 600₽ и сохраняют - что окажется в бд?
Ну как? Выживешь в такой ситуации?
А ведь именно так сейчас выглядит рынок найма - эти вопросы взяты с реальных собесов😯
Рынок усложнился, и на вакансию джуна спрашивают как на синьора 3 года назад. Нужно реально шарить, и шарить глубоко, только на одних нейронках далеко не уедешь
Чтобы разобраться раз и навсегда со Spring, Kafka, Redis Паша Сорокин 18 декабря в 19:00 по МСК проведёт живой открытый урок для Java-разработчиков и тех, кто хочет им стать:
💚 За какие темы надо шарить, чтобы получить оффер на миддла
💚 В каком порядке и до какой глубины их изучать
💚 По каждой технологии (Spring Boot, HTTP, REST, Postgresql, Hibernate, микросервисы, Kafka, Redis) разберём как делать не надо и как делать надо
🟢 Ссылка на урок будет в закрытом канале урока
В этом же канале вас ждёт подарок - гайд "Roadmap из 11 шагов до ЗП в 200.000+"
P.S. Паша - ex Senior Dev в ВТБ с 6 годами коммерческого опыта, так что фигни не посоветует))
Похититель наклоняется к твоему уху и шепчет: "Или ты правильно отвечаешь на 3 вопроса, или пуля летит тебе прямиком в висок:"
Похититель наклоняется к твоему уху и шепчет: "Или ты правильно отвечаешь на 3 вопроса, или пуля летит тебе прямиком в висок:
Ну как? Выживешь в такой ситуации?
А ведь именно так сейчас выглядит рынок найма - эти вопросы взяты с реальных собесов
Рынок усложнился, и на вакансию джуна спрашивают как на синьора 3 года назад. Нужно реально шарить, и шарить глубоко, только на одних нейронках далеко не уедешь
Чтобы разобраться раз и навсегда со Spring, Kafka, Redis Паша Сорокин 18 декабря в 19:00 по МСК проведёт живой открытый урок для Java-разработчиков и тех, кто хочет им стать:
В этом же канале вас ждёт подарок - гайд "Roadmap из 11 шагов до ЗП в 200.000+"
P.S. Паша - ex Senior Dev в ВТБ с 6 годами коммерческого опыта, так что фигни не посоветует))
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1