Apache HttpClient - это библиотека для выполнения HTTP запросов. Она предоставляет удобный API для создания и отправки HTTP запросов, а также обработки ответов.
Ниже приведены некоторые основные методы класса HttpClient и их краткое описание:
1. execute - метод для отправки HTTP запроса на указанный URL. Пример кода:
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://example.com");
CloseableHttpResponse response = httpClient.execute(httpGet);
2. setHeader - метод для установки заголовков запроса. Пример кода:
httpGet.setHeader("Content-Type", "application/json");
3. setEntity - метод для установки тела запроса. Пример кода:
StringEntity entity = new StringEntity("{\"key\": \"value\"}");
httpPost.setEntity(entity);
4. getStatusCode - метод для получения кода ответа сервера. Пример кода:
int statusCode = response.getStatusLine().getStatusCode();
5. getEntity - метод для получения содержимого ответа. Пример кода:
String responseBody = EntityUtils.toString(response.getEntity());
Apache HttpClient позволяет выполнять различные типы запросов (GET, POST, PUT, DELETE и пр.) и работать с различными типами данных (текст, JSON, XML и пр.). Он также поддерживает работу с HTTPS, аутентификацию и установку параметров прокси.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍2❤1
Spring Data REST анализирует репозитории Spring Data и создает RESTful конечные точки для сущностей, которыми они управляют.
В Spring Data REST обеспечена поддержка различных типов запросов, включая запросы для сортировки, фильтрации, постраничного вывода и т.д.
В Spring Data REST так же встроена поддержка HATEOAS (Hypermedia as the Engine of Application State) - это архитектурный принцип, который позволяет клиентским приложениям навигировать по API, следуя гиперссылкам, предоставляемым сервером. Spring Data REST автоматически включает ссылки на связанные ресурсы в ответах API, что упрощает навигацию и использование API.
Предположим, у нас есть сущность User, которую мы хотим представить через API. Для этого нужно аннотировать репозиторий сущности User, аннотацией @RepositoryRestResource:
@RepositoryRestResource(path = "users")
public interface UserRepository extends JpaRepository<User, Long> {
}
Теперь Spring Data REST автоматически создаст RESTful конечные точки для управления сущностью User:
GET /users - Получить всех пользователей
POST /users - Создать нового пользователя
GET /users/{id} - Получить пользователя по ID
PUT /users/{id} - Обновить пользователя
DELETE /users/{id} - Удалить пользователя
Spring Data REST обеспечивает множество способов настройки и расширения поведения API. Разработчики могут настраивать URL-адреса, форматирование ответов, права доступа и многое другое, используя различные аннотации и конфигурационные параметры.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥2
Apache POI (Poor Obfuscation Implementation) - это библиотека для работы с файлами Microsoft Office, такими как Excel, Word и PowerPoint. Она позволяет создавать, изменять и читать документы в форматах XLS, XLSX, DOC, DOCX, PPT и других.
Основные классы, которые используются для работы с файлами Excel в Apache POI:
1. HSSFWorkbook и XSSFWorkbook - используются для работы с файлами Excel в форматах .xls и .xlsx соответственно.
2. HSSFSheet и XSSFSheet - представляют собой листы в Excel файле.
3. HSSFRow и XSSFRow - представляют строки в Excel файле.
4. HSSFCell и XSSFCell - представляют ячейки в Excel файле.
Пример создания нового Excel файла и запись в него данных с использованием Apache POI:
import org.apache.poi.ss.usermodel.*;
public class ExcelWriter {
public static void main(String[] args) {
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("Sheet1");
Row headerRow = sheet.createRow(0);
Cell headerCell = headerRow.createCell(0);
headerCell.setCellValue("Name");
Row dataRow = sheet.createRow(1);
Cell dataCell = dataRow.createCell(0);
dataCell.setCellValue("John Doe");
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Apache POI также предоставляет методы для чтения и изменения существующих Excel файлов, форматирования ячеек, добавления графиков и других операций над документами Microsoft Office.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3👏2❤1
class Cache {
private static int sum = 0;
static {
initializeIfNecessary();
}
public static int getSum() {
initializeIfNecessary();
return sum;
}
private static boolean initialized = false;
private static synchronized void initializeIfNecessary() {
if (!initialized) {
for (int i = 0; i < 5; i++)
sum += i;
initialized = true;
}
}
}
class Client {
public static void main(String[] args) {
System.out.println(Cache.getSum());
}
}👍5👎2
Apache Tomcat - это веб-сервер и контейнер сервлетов, который позволяет запускать Java-сервлеты и JSP-страницы. Он является одним из самых популярных и распространенных контейнеров сервлетов в мире Java.
Tomcat tomcat = new Tomcat();
tomcat.setPort(8080);
tomcat.addWebapp("/myapp", new File("src/main/webapp/").getAbsolutePath());
tomcat.addServlet("/myservlet", "MyServlet", MyServlet.class.getName());
tomcat.start();
Зависимости:
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>11.0.0-M18</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>11.0.0-M18</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jasper</artifactId>
<version>11.0.0-M18</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jasper-el</artifactId>
<version>11.0.0-M18</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jsp-api</artifactId>
<version>11.0.0-M18</version>
</dependency>
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2❤1
Swing и AWT — это библиотеки пользовательского интерфейса для создания графических приложений на языке Java. Swing является более современной и улучшенной версией AWT, предоставляя более широкий функционал и возможности для разработчиков.
Ниже приведены некоторые основные методы библиотек Swing/AWT, их описание и соответствующий код:
1. Создание окна:
AWT:
Frame frame = new Frame("Название окна");
frame.setSize(400, 300);
frame.setVisible(true);
Swing:
JFrame frame = new JFrame("Название окна");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
2. Добавление компонентов на панель:
AWT:
Button button = new Button("Нажми меня");
frame.add(button);
Swing:
JButton button = new JButton("Нажми меня");
frame.add(button);
3. Создание текстового поля:
AWT:
TextField textField = new TextField("Введите текст");
frame.add(textField);
Swing:
JTextField textField = new JTextField("Введите текст");
frame.add(textField);
4. Добавление обработчика событий:
AWT/Swing:
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Кнопка была нажата");
}
});
Please open Telegram to view this post
VIEW IN TELEGRAM
Метод
clone() в Java используется для создания копии объекта. Он определён в классе java.lang.Object и по умолчанию выполняет поверхностное копирование объекта. Это означает, что он создает новый объект, который содержит те же значения полей, что и исходный объект, но сами поля являются ссылками на те же объекты, что и в исходном объекте. Таким образом, изменения в полях объекта, на который производится клонирование, также могут отразиться на его клоне, если эти поля сами по себе являются изменяемыми объектами.Простое использование метода
clone() выглядит так:
public class MyClass implements Cloneable {
private int value;
// Конструкторы и методы класса
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
Чтобы использовать метод
clone(), класс должен реализовывать интерфейс Cloneable, иначе при попытке клонирования будет выбрасываться исключение CloneNotSupportedException.Использование метода
clone() может быть не всегда удобным или эффективным. В некоторых случаях рекомендуется использовать альтернативные методы, такие как конструктор копирования или методы фабрики. Это обычно более явные способы создания копий объектов, и они могут быть более удобными и безопасными с точки зрения проектирования программы.Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2❤1🤯1
Что выведет код?
Anonymous Quiz
15%
0
41%
100
16%
вывалится с ошибкой OutOfMemoryError
27%
ошибка компиляции
👍6👎3🔥1😁1🎉1
Quartz - это мощный планировщик задач для языка программирования Java, который позволяет создавать и управлять задачами, выполняемыми по определенному расписанию. Quartz позволяет создавать различные типы задач, такие как одноразовые, повторяющиеся, параллельные и многие другие.
Основные методы библиотеки Quartz:
1. SchedulerFactory - фабрика создания планировщика задач.
Пример кода:
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
2. Job - интерфейс, представляющий выполняемую задачу.
Пример кода:
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) {
System.out.println("Hello, Quartz!");
}
}
3. JobDetail - содержит информацию о задаче, такую как класс задачи, идентификатор задачи и другие свойства.
Пример кода:
JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
.withIdentity("myJob")
.build();
4. Trigger - позволяет указать расписание выполнения задачи, такое как время запуска, повторяемость и другие параметры.
Пример кода:
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("myTrigger")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(10)
.repeatForever())
.build();
5. Scheduler - основной класс для управления планированием задач.
Пример кода:
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1👏1
В Java статическая инициализация класса происходит во время загрузки класса в JVM (Java Virtual Machine), которая происходит перед созданием объектов этого класса или вызовом статических методов или статических полей этого класса.
Статическая инициализация выполняется при помощи статических блоков кода или статических переменных класса.
Статическая инициализация выполняется единожды при загрузке класса в JVM, вне зависимости от того, сколько раз этот класс будет использоваться в программе.
public class MyClass {
static {
// Код статической инициализации
System.out.println("Статическая инициализация MyClass");
}
public MyClass() {
System.out.println("Конструктор MyClass");
}
}
public class Start {
public static void main(String[] args) {
System.out.println("start");
new MyClass();
System.out.println("stop");
}
}
Вывод в консоль:
start
Статическая инициализация MyClass
Конструктор MyClass
stop
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤1🔥1
public class ShadesOfGray {
public static void main(String[] args) {
System.out.println(X.Y.Z);
}
}
class X {
static class Y {
static String Z = "BLACK";
}
static C Y = new C();
}
class C {
String Z = "WHITE";
}😱5🎉1🤩1
Pattern и Matcher - это классы, предоставляемые Java для работы с регулярными выражениями. Pattern используется для компиляции регулярного выражения, а Matcher используется для сравнения этого выражения с определенной последовательностью символов.
import java.util.regex.*;
public class RegexExample {
public static void main(String[] args) {
String text = "The cat in the hat";
// Компилируем регулярное выражение
Pattern pattern = Pattern.compile("\\bcat\\b");
// Создаем Matcher, сравниваем его с текстом и выводим результат
Matcher matcher = pattern.matcher(text);
if (matcher.find()) {
System.out.println("Найдено совпадение!");
} else {
System.out.println("Совпадений не найдено");
}
}
}
🔹В данном примере мы создаем регулярное выражение, которое ищет слово "cat" как отдельное слово. Затем мы создаем Matcher, который сравнивает это выражение с текстом "The cat in the hat". Результатом выполнения программы будет сообщение "Найдено совпадение!", так как слово "cat" есть в тексте.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1🔥1👏1
JavaFX - это библиотека для создания графических пользовательских интерфейсов (GUI) на языке программирования Java. Она предоставляет инструменты для создания различных элементов интерфейса, анимаций, эффектов и многих других возможностей.
Пример кода на JavaFX:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorld extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button();
btn.setText("Hello World");
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
JavaFX также полностью интегрируется с языком Java, что позволяет программистам легко работать с различными Java библиотеками и функциональными возможностями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3👏2👨💻2
final String pig = "length: 10";
final String dog = "length: " + pig.length();
System.out.println(pig == dog);
👍6🎉2🔥1👏1