Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Она использует
fluent API
, что упрощает построение простых и безопасных тестов с помощью Kotlin-расширений.Arrow, Jackson, MockK и Spring
, что делает её гибким инструментом для тестирования различных типов данных и компонентов▪️GitHub
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
▪️GitHub
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Java Streams: Основные методы для чистого и эффективного кода!
Java Streams предлагают множество методов для упрощения манипуляций с данными и повышения читаемости кода.
Вот краткое руководство с примерами:
Освойте эти методы, чтобы писать более чистый и эффективный код на Java! 💡
@javatg
Java Streams предлагают множество методов для упрощения манипуляций с данными и повышения читаемости кода.
Вот краткое руководство с примерами:
Освойте эти методы, чтобы писать более чистый и эффективный код на Java! 💡
@javatg
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
▪️Github
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
▪️Github
@android_its
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
▪️Github
@java_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
▪️Github
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Минималистичный интерфейс — простая и удобная навигация
▪️Github
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
В Java строки (`String`) являются объектами, представляющими последовательность символов. Они имеют особое значение, и оптимизация работы со строками важна для эффективного использования памяти и производительности приложения.
Вот ключевые методы оптимизации работы со строками в Java:
1. Пул строк (String Pool)
- Java использует специальную область памяти, называемую String Pool (или **интернированный пул строк**), для хранения строковых литералов.
- Когда строка создается как литерал, например,
String str = "hello";
, JVM сначала проверяет, есть ли уже такая строка в пуле. Если есть, то возвращается ссылка на существующую строку, а не создается новый объект.- Если строка создается с помощью
new
, например, String str = new String("hello");
, новый объект строки создается в куче, даже если такая строка уже есть в пуле.Оптимизация:
- Используйте строковые литералы вместо явного создания новых объектов
String
через new
, чтобы JVM могла переиспользовать строки из пула.Пример:
String s1 = "hello"; // переиспользует строку из пула
String s2 = new String("hello"); // создает новую строку в куче
2. Метод `intern()`
- Метод
intern()
добавляет строку в пул строк, если ее там еще нет, и возвращает ссылку на строку из пула.- Это полезно, когда вы хотите уменьшить количество дубликатов строк.
Пример:
String s1 = new String("hello").intern(); // добавляет строку в пул и возвращает ссылку из пула
String s2 = "hello"; // использует строку из пула
System.out.println(s1 == s2); // true
3. Избегайте конкатенации строк в циклах
- Операция конкатенации строк через оператор
+
в Java создает новые объекты String
, поскольку строки неизменяемы. Это может привести к большому количеству временных объектов и снижению производительности.- Внутри циклов это особенно дорого, поскольку каждый раз создается новая строка.
Оптимизация:
- Используйте
StringBuilder
или StringBuffer
для конкатенации строк, если вы собираете строки в цикле.Пример:
// Плохой подход:
String result = "";
for (int i = 0; i < 1000; i++) {
result += i; // каждый раз создается новая строка
}
// Оптимизированный подход:
StringBuilder builder = new StringBuilder();
for (int i = 0; i < 1000; i++) {
builder.append(i); // строка накапливается без создания временных объектов
}
String result = builder.toString();
4. Используйте `StringBuilder` вместо `StringBuffer` для однопоточных операций
-
StringBuffer
синхронизирован, и это делает его потокобезопасным, но добавляет накладные расходы. Для однопоточных операций лучше использовать несинхронизированный StringBuilder
, который работает быстрее.5. Использование методов `char[]` и `toCharArray()`
- Если необходимо часто модифицировать строку или выполнять операции с отдельными символами, то преобразование строки в массив символов (`char[]`) может быть более эффективно.
Пример:
String str = "hello";
char[] charArray = str.toCharArray();
charArray[0] = 'H'; // изменяем символ
String modifiedStr = new String(charArray); // создаем новую строку
6. Уменьшение использования временных строк
- Старайтесь избегать создания временных строк, которые сразу выбрасываются сборщиком мусора. Например, при разбиении строки (split) или других операциях, которые могут создать ненужные объекты.
Оптимизация:
- Используйте потоки или регулярные выражения для более эффективной обработки строк.
7. Использование `String.join()` или `Collectors.joining()` для объединения строк
- Если необходимо объединить множество строк (например, из массива или коллекции), лучше использовать
String.join()
или Collectors.joining()
для оптимизации вместо ручной конкатенации.Пример:
List<String> list = Arrays.asList("one", "two", "three");
String result = String.join(", ", list); // более эффективное объединение строк
👉 Этот документ служит полным определением стандартов Google для Java кода.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Процедура проходит с помощью инструментов максимально эффективной и комфортной разработки сервисов и web приложений на Spring Boot в IntelliJ IDEA и административного пользовательского интерфейса на React Admin в VS Code.
00:00 — Зачем нужно версионировать БД?
00:51 — Задачи на сегодня
01:30 — Обзор Spring Boot приложения (via Amplicode Explorer)
03:17 — Подключение и настройка Flyway (генерация скриптов инициализации БД)
05:49 — Модификация JPA модели
06:52 — Генерация Flyway скриптов миграции для синхронизации JPA модели и схемы БД
09:04 — Запуск Spring Boot приложения
📌 Источник
#видео #SpringBoot #java
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM