⚙️ Метод Optional.orElseThrow() используется для генерации исключения в случае, если Optional является пустым. В отличие от orElse(), он не требует указания значения по умолчанию, а в отличие от orElseGet() не создает лишние объекты.
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Optional.html#orElseThrow())
👩💻
@javaquiz
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Optional.html#orElseThrow())
👩💻
@javaquiz
⚙️ MemorySegment.allocateNative()
MemorySegment.allocateNative() из Java Foreign Function & Memory API (FFM API, начиная с Java 19) предоставляет возможность безопасно управлять нативной памятью без использования Unsafe. Это особенно полезно для приложений с высокой производительностью, которые взаимодействуют с C-библиотеками.
🔗 Документация (https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/foreign/MemorySegment.html)
👩💻
@javaquiz
MemorySegment.allocateNative() из Java Foreign Function & Memory API (FFM API, начиная с Java 19) предоставляет возможность безопасно управлять нативной памятью без использования Unsafe. Это особенно полезно для приложений с высокой производительностью, которые взаимодействуют с C-библиотеками.
🔗 Документация (https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/foreign/MemorySegment.html)
👩💻
@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
🔗 Документация (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
🔥 Виртуальная стажировка по Java – это твой шанс войти в мир коммерческой разработки!
🚀 Хочешь научиться создавать работающий код? Тогда этот курс для тебя! На нем ты:
✅ Под руководством опытного наставника разработаешь проект с нуля до его внедрения
✅ Освоишь современные технологии и библиотеки, которые применяются в реальной разработке
✅ Поймешь архитектуру, тестирование, развертывание и интеграцию
🛠️ Какие технологии ты изучишь?
- Spring Boot, Gradle, JPA, Hibernate
- RabbitMQ, Docker, Liquibase
- JUnit, Mockito, Lombok, GitHub
- Шаблоны проектирования, DDD, Чистый код
…и многое другое!
🎯 Основная цель – развить инженерное мышление. Не просто писать код, а решать реальные бизнес-задачи с помощью IT.
📌 В конце ты получишь не только практический опыт в коммерческой разработке, но и готовый проект для своего портфолио.
💬 Есть вопросы? Напиши своему наставнику:
🔹 Telegram: @javagurulv
📩 Email: [email protected]
🖇 Присоединяйся к сообществу!
👉 Телеграм-группа стажировки
👉 Курс на Stepik
@javaquiz
https://yangx.top/+mvRhG9YECTlkZjQ0
🚀 Хочешь научиться создавать работающий код? Тогда этот курс для тебя! На нем ты:
✅ Под руководством опытного наставника разработаешь проект с нуля до его внедрения
✅ Освоишь современные технологии и библиотеки, которые применяются в реальной разработке
✅ Поймешь архитектуру, тестирование, развертывание и интеграцию
🛠️ Какие технологии ты изучишь?
- Spring Boot, Gradle, JPA, Hibernate
- RabbitMQ, Docker, Liquibase
- JUnit, Mockito, Lombok, GitHub
- Шаблоны проектирования, DDD, Чистый код
…и многое другое!
🎯 Основная цель – развить инженерное мышление. Не просто писать код, а решать реальные бизнес-задачи с помощью IT.
📌 В конце ты получишь не только практический опыт в коммерческой разработке, но и готовый проект для своего портфолио.
💬 Есть вопросы? Напиши своему наставнику:
🔹 Telegram: @javagurulv
📩 Email: [email protected]
🖇 Присоединяйся к сообществу!
👉 Телеграм-группа стажировки
👉 Курс на Stepik
@javaquiz
https://yangx.top/+mvRhG9YECTlkZjQ0
Telegram
ВИРТУАЛЬНАЯ_СТАЖИРОВКА (Java)
Привет! Меня зовут Виктор, и я занимаюсь разработкой на Java с 2007.
Здесь мы обсуждаем все про Java разработку и обучение: https://yangx.top/+mvRhG9YECTlkZjQ0
🔥Виртуальная Стажировка Java🔥
https://stepik.org/course/210937/promo
Здесь мы обсуждаем все про Java разработку и обучение: https://yangx.top/+mvRhG9YECTlkZjQ0
🔥Виртуальная Стажировка Java🔥
https://stepik.org/course/210937/promo
⚙️ VarHandle.compareAndExchange()
VarHandle.compareAndExchange() позволяет безопасно обновлять значения переменной, если текущее значение совпадает с ожидаемым. Это полезно для создания структур данных без блокировок и для синхронизации в многопоточных приложениях.
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#compareAndExchange(T,...))
👩💻
@javaquiz
VarHandle.compareAndExchange() позволяет безопасно обновлять значения переменной, если текущее значение совпадает с ожидаемым. Это полезно для создания структур данных без блокировок и для синхронизации в многопоточных приложениях.
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/VarHandle.html#compareAndExchange(T,...))
👩💻
@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
🔗 Документация (https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/ProcessBuilder.html#redirectOutput(java.io.File))
👩💻
@javaquiz
⚙️ JMH (Java Microbenchmark Harness)
JMH — это эффективная библиотека для создания точных микробенчмарков на Java. Она помогает измерять производительность кода, минимизируя ошибки, возникающие из-за JIT-компиляции и оптимизаций JVM.
🔗 Документация (https://openjdk.org/projects/code-tools/jmh/)
👩💻
@javaquiz
JMH — это эффективная библиотека для создания точных микробенчмарков на Java. Она помогает измерять производительность кода, минимизируя ошибки, возникающие из-за JIT-компиляции и оптимизаций JVM.
🔗 Документация (https://openjdk.org/projects/code-tools/jmh/)
👩💻
@javaquiz
⚙️ SecureRandom.getInstanceStrong()
Метод SecureRandom.getInstanceStrong() предоставляет криптографически безопасный генератор случайных чисел, который использует алгоритмы операционной системы. Это особенно полезно для создания ключей, токенов и защиты данных.
👩💻
@javaquiz
Метод SecureRandom.getInstanceStrong() предоставляет криптографически безопасный генератор случайных чисел, который использует алгоритмы операционной системы. Это особенно полезно для создания ключей, токенов и защиты данных.
👩💻
@javaquiz
MappedByteBuffer позволяет отображать файлы в оперативную память, что ускоряет процесс чтения и записи больших файлов, при этом снижая нагрузку на оперативную память.
👩💻
@javaquiz
👩💻
@javaquiz
⚙️ Метод ByteBuffer.order() позволяет задавать порядок байтов (Big-Endian или Little-Endian) при работе с бинарными данными. Это полезно при взаимодействии с файлами, сетевыми протоколами и нативным кодом.
👩💻
@javaquiz
👩💻
@javaquiz
⚙️ Метод Thread.getAllStackTraces() позволяет получить информацию о стеке вызовов всех работающих потоков. Это очень полезно для отладки программ, использующих несколько потоков, а также для анализа зависших потоков.
👩💻
@javaquiz
👩💻
@javaquiz
👀 Ограничение использования памяти с помощью -Xmx
В Java есть возможность установить лимит на объём памяти, который будет доступен JVM, чтобы предотвратить избыточное потребление ресурсов и возможные утечки памяти.
✔️ Использование флага -Xmx при запуске позволяет определить максимальный размер кучи (heap size) для Java-программы.
✔️ Также существует возможность установить лимит программно с помощью Runtime.getRuntime().maxMemory().
👩💻
@javaquiz
В Java есть возможность установить лимит на объём памяти, который будет доступен JVM, чтобы предотвратить избыточное потребление ресурсов и возможные утечки памяти.
✔️ Использование флага -Xmx при запуске позволяет определить максимальный размер кучи (heap size) для Java-программы.
✔️ Также существует возможность установить лимит программно с помощью Runtime.getRuntime().maxMemory().
👩💻
@javaquiz
👀 Отслеживание использования памяти с помощью MemoryMXBean
В Java есть возможность контролировать текущее потребление памяти в JVM с помощью MemoryMXBean. Это важно для выявления утечек памяти и анализа работы сборщика мусора.
✔️ С помощью ManagementFactory.getMemoryMXBean() можно получить данные о потреблении памяти в режиме реального времени.
👩💻
@javaquiz
В Java есть возможность контролировать текущее потребление памяти в JVM с помощью MemoryMXBean. Это важно для выявления утечек памяти и анализа работы сборщика мусора.
✔️ С помощью ManagementFactory.getMemoryMXBean() можно получить данные о потреблении памяти в режиме реального времени.
👩💻
@javaquiz
⚙️ Thread.sleep(Duration)
Thread.sleep(Duration) (Java 9+) дает возможность приостанавливать выполнение потока на определенное время, используя Duration, что делает код более понятным и удобным.
👩💻
@javaquiz
Thread.sleep(Duration) (Java 9+) дает возможность приостанавливать выполнение потока на определенное время, используя Duration, что делает код более понятным и удобным.
👩💻
@javaquiz
⚙️ Integer.numberOfTrailingZeros()
Integer.numberOfTrailingZeros() определяет, сколько нулей находится в конце двоичного представления числа. Это полезно для выполнения битовых операций и улучшения алгоритмов.
👩💻
@javaquiz
Integer.numberOfTrailingZeros() определяет, сколько нулей находится в конце двоичного представления числа. Это полезно для выполнения битовых операций и улучшения алгоритмов.
👩💻
@javaquiz
⚙️ Cleaner.register()
Cleaner.register() дает возможность запускать код очистки перед тем, как объект будет удален сборщиком мусора. Это удобно для освобождения нативных ресурсов без необходимости явного вызова close().
👩💻
@javaquiz
Cleaner.register() дает возможность запускать код очистки перед тем, как объект будет удален сборщиком мусора. Это удобно для освобождения нативных ресурсов без необходимости явного вызова close().
👩💻
@javaquiz
⚙️ Long.divideUnsigned()
Long.divideUnsigned() предназначен для деления беззнаковых целых чисел, что помогает избежать проблем, связанных с интерпретацией отрицательных значений в long.
👩💻
@javaquiz
Long.divideUnsigned() предназначен для деления беззнаковых целых чисел, что помогает избежать проблем, связанных с интерпретацией отрицательных значений в long.
👩💻
@javaquiz