Сообщения

Сообщения за октябрь, 2019

Паттерн Builder (Строитель) в Java

Изображение
Цель паттерна Builder - отделить строительство сложного объекта от его представления, так что один и тот же процесс строительства может создать разные представления. Паттерн Builder позволяет создавать различные варианты объекта, избегая загрязнения конструктора. Полезно, когда может быть несколько вариантов объекта. Или когда есть много шагов, вовлеченных в создание объекта. Согласно Википедии: паттерн Builder - это паттерн проектирования программного обеспечения для создания объектов с намерением найти решение для анти-паттерна телескопического конструктора. Что такое анти-шаблон телескопического конструктора? Рассмотрим на примере: public Car(String name, Brand brand, Color color, Body body, Wheels wheels, Tuning tuning){} Как вы можете видеть, количество параметров конструктора может быстро выйти из-под контроля, и это может стать трудным понять расположение параметров. Плюс этот список параметров может продолжать расти, если вы захотите добавить больше опций в будущем.

Как преобразовать Java объект в/из JSON

Изображение
В этом посте будет описано как использовать Jackson 2.x чтобы преобразовать Java объекты в/из JSON. Преобразовать объект в JSON Используйте writeValue(...) для преобразования Java объекта в JSON файл. Используйте writeValueAsString(...) для преобразования Java объекта в JSON строку. import com.fasterxml.jackson.databind.ObjectMapper; import java.io.File; public class Main { public static void main(String[] args){ ObjectMapper mapper = new ObjectMapper(); Animal animal = new Animal(); animal.setName("cat"); try { // Java объект в JSON файл mapper.writeValue(new File("/home/myuser/animals.json"), animal); // Java объект в JSON строку String jsonString = mapper.writeValueAsString(animal); System.out.println(jsonString); } catch (Exception e){ System.out.println(e.getMessage()); } } } Вывод: {"name":"cat"

Как получить текущий timestamp в Java

Изображение
Чтобы получить текущий timestamp в Java : package main; import java.sql.Timestamp; public class Main { public static void main(String[] args){ Timestamp timestamp = new Timestamp(System.currentTimeMillis()); System.out.println(timestamp); } } Вывод: 2019-10-03 10:09:21.61 Вот еще два более подробных примера как получить текущий timestamp в Java: 1. java.sql.Timestamp Есть два метода получить текущий java.sql.Timestamp package main; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.Date; public class Main { private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss"); public static void main(String[] args) { // Метод 1 Timestamp timestamp = new Timestamp(System.currentTimeMillis()); System.out.println(timestamp); // Метод 2 - через Date Date date = new Date(); System.out.println(new Timestamp(date.getTime()

Сортировка "пузырьком" на Java

Сортировка "пузырьком" (Bubble sort) - это самый простой алгоритм сортировки, он сравнивает первые два элемента, если первый больше второго, меняет их местами, продолжает выполнять (сравнивает и меняет местами) следующую пару смежных элементов. Затем он начинается снова с первых двух элементов, сравнивает, переставляет, пока не потребуется перестановка. Вот пример реализации сортировки "пузырьком" на Java. public static int[] sort(int[] data) { int dataLength = data.length; int swap; boolean sorted; for (int i = 0; i < dataLength; i++) { sorted = true; for (int a = 1; a < (dataLength - i); a++) { if (data[a - 1] > data[a]) { swap = data[a - 1]; data[a - 1] = data[a]; data[a] = swap; sorted = false; } } // если отсортировано - выходим, пропуская ненужный цикл. if (sorted) break; } return data; }