🗣️ Этот код выполняет захват экрана и сохраняет его как изображение в формате PNG.
•
Получает размер экрана с помощью Toolkit.getDefaultToolkit().getScreenSize()
.•
Создает прямоугольник, соответствующий размеру экрана.•
Создает объект Robot
для выполнения действий, связанных с автоматизацией, таких как захват экрана.•
Захватывает изображение экрана в виде объекта BufferedImage
.•
Сохраняет захваченное изображение в файл с указанным именем и форматом PNG с помощью ImageIO.write()
.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13😁1
Метод
postMail
отправляет письмо на заданные адреса. Он принимает список получателей, тему, сообщение и адрес отправителя.Transport.send
.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Этот код создает PDF-файл с использованием библиотеки iText в Java.
•
Внутри метода main
создается новый PDF-документ, добавляются два параграфа: один с текстом "Hello Kiran
" и второй с текущей датой и временем.•
Затем документ сохраняется в файл C:\Test.pdf
. Если возникает ошибка, она выводится в консоль.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Этот код преобразует дату из формата
Java java.util.Date
в формат java.sql.Date
, который используется для работы с базами данных.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
Работа с файлами в Java — одна из самых распространенных задач.
🗣️ Этот код упрощает процесс чтения и записи текстовых файлов, используя современные подходы для более удобного и эффективного выполнения этих операций.
•
Использование java.nio.file.Files
и java.nio.file.Paths
: Эти классы из пакета java.nio предоставляют удобные методы для работы с файлами и путями.•
Метод readFileToString
: Читает содержимое файла и возвращает его в виде строки. Метод Files.readAllBytes считывает все байты из файла и преобразует их в строку с использованием заданной кодировки.•
Метод writeStringToFile
: Записывает строку в файл. Метод Files.write записывает байты строки в файл с использованием указанной кодировки.•
Обработка исключений: В случае ошибок ввода-вывода, они обрабатываются с помощью блока try-catch, и выводится сообщение об ошибке.Заключение
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
Работа с объединением строк — это обычная задача, которая может стать громоздкой, если приходится учитывать разделители и правильное форматирование.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Перегрузка методов происходит, когда в одном классе несколько методов имеют одинаковое имя, но разные параметры.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🎄2
PhantomReference в Java предоставляет возможность отслеживать объекты, которые находятся в состоянии сборки мусора.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Рефлексия в Java позволяет динамически получать информацию о классе и его методах во время выполнения.
toString()
, чтобы он автоматически выводил значения всех полей объекта, что может быть полезно для отладки и логирования.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
В Java можно использовать прокси для динамического изменения поведения объектов во время выполнения.
🗣️ Это может быть полезно для внедрения кода, такого как логирование, безопасность или кэширование, без изменения исходного кода классов.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3
Пожалуй, создание объектов является одной из наиболее затратных операций в Java.
🗣️ Хорошая практика — создавать их лишь тогда, когда они действительно необходимы.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
😱12👍6🤔5😁2🎄1
👍13🔥1
👍21
Взаимная блокировка потоков (дэдлок) бывает по множеству причин, а полностью уберечься от них в Java 8 весьма сложно.
•
Всегда захватывайте блокировки в одном и том же порядке во всех методах. Например, сначала lock1, затем lock2•
Используйте ReentrantLock с таймаутом вместо synchronized, чтобы избежать бесконечного ожидания.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
В Java строки неизменяемы, и часто создание большого количества строк, содержащих одинаковые значения, приводит к избыточному использованию памяти.
intern()
позволяет сократить количество дубликатов строк, оптимизируя использование памяти, за счет хранения только одной копии каждой уникальной строки в пуле строк.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2
Использование метода sun.misc.Unsafe для низкоуровневой работы с памятью в Java
Хотя использование sun.misc.Unsafe не рекомендуется и является небезопасным, он предоставляет уникальные возможности для работы с памятью на низком уровне, аналогично тому, как это делается в языках, таких как C или C++.
Java Learning👩💻
Хотя использование sun.misc.Unsafe не рекомендуется и является небезопасным, он предоставляет уникальные возможности для работы с памятью на низком уровне, аналогично тому, как это делается в языках, таких как C или C++.
• sun.misc.Unsafe
предоставляет методы для низкоуровневых операций с памятью, которые обычно недоступны в Java.•
Доступ к Unsafe возможен только через рефлексию, так как он скрыт от обычных разработчиков.•
Этот подход обычно используется в высокопроизводительных библиотеках и внутри JVM, но не рекомендуется для обычных приложений.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2
MethodHandles предоставляют низкоуровневый доступ к методам, позволяя динамически вызывать их с минимальными накладными расходами.
🗣️ Этот подход может быть полезен для высокопроизводительных приложений, где отражение (reflection) слишком медленное.
•
MethodHandles.Lookup используется для поиска методов в классе. В примере мы находим метод substring класса String.•
MethodHandle позволяет вызывать метод с минимальными накладными расходами по сравнению с традиционным отражением (reflection), что делает его более производительным.•
В отличие от рефлексии, MethodHandles могут использоваться для более эффективного вызова методов, что полезно в динамических и высокопроизводительных приложениях.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5