Ранее я писал код следующим образом:
public class Game {
private HighScoreService service = HighScoreService.getInstance();
public void showLeaderBoard() {
List listOfTopPlayers = service.getLeaderBoard();
System.out.println(listOfTopPlayers);
}
}• Класс Game жестко связан с классом HighScoreService, что усложняет тестирование Game в изоляции.• Даже при наличии класса HighScoreService сложно протестировать Game, если HighScoreService делает сетевые запросы или загружает данные с серверов. Мок-объекты здесь не подходят.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Раньше я закрывал потоки
InputStream и OutputStream следующим образом:InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream("application.json");
os = new FileOutputStream("application.log");
} catch (IOException io) {
// Обработка исключения
} finally {
is.close();
os.close();
}
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream("../input/fxrates.txt");
os = new FileOutputStream("../output/fxrates.txt");
......
} finally {
try { if (is != null) is.close(); } catch(IOException e) {//closing quietly}
try { if (os != null) os.close(); } catch(IOException e) {//closing quietly}
}
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤔4❤1😁1
Java 8 добавила метод
forEach() в интерфейс java.lang.Iterable, что упрощает работу с коллекциями и повышает читаемость кода.Iterator можно использовать forEach() для обхода элементов.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Maven — один из трёх самых популярных инструментов для сборки проектов на Java. Он отвечает за компиляцию, создание jar-файлов (Java-архивов), создание дистрибутива программы, генерацию документации.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
В Java 8 было внесено несколько крупных изменений, улучшивших API параллелизма, включая метод newWorkStealingPool().
• Новые методы для ConcurrentHashMap: forEach(), forEachEntry(), forEachValue(), reduce(), merge() и search().• CompletableFuture может явно устанавливать свое значение и статус.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
👍10🔥3❤1
Этот код настраивает HTTP-прокси для Java-приложения, устанавливая адрес, порт, имя пользователя и пароль прокси-сервера.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🗣️ Этот код демонстрирует две реализации паттерна Singleton в Java, который гарантирует, что класс имеет только один экземпляр и предоставляет глобальную точку доступа к этому экземпляру.
• В первой реализации используется класс с приватным конструктором и статическим методом для получения единственного экземпляра.• Во второй реализации используется перечисление (enum), что обеспечивает автоматическую гарантию единственного экземпляра и потокобезопасность.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
🗣️ Этот код выполняет захват экрана и сохраняет его как изображение в формате 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