Что ты ожидаешь в результате выполнения этого кода?
public class Haha {
public static void main(String args[]) {
System.out.print("H" + "a");
System.out.print('H' + 'a');
}
}Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
⏳ System.currentTimeMillis или System.nanoTime?
В Java есть два стандартных способа проведения операций со временем, и не всегда ясно, какой из них следует выбрать.
➡️ Метод
➡️ Метод
Таким образом, метод
Java Learning 👩💻
В Java есть два стандартных способа проведения операций со временем, и не всегда ясно, какой из них следует выбрать.
➡️ Метод
System.currentTimeMillis() возвращает текущее количество миллисекунд с начала эры Unix в формате Long. Его точность составляет от 1 до 15 тысячных долей секунды в зависимости от системы.long startTime = System.currentTimeMillis();
long estimatedTime = System.currentTimeMillis() - startTime;
➡️ Метод
System.nanoTime() имеет точность до одной миллионной секунды (наносекунды) и возвращает текущее значение наиболее точного доступного системного таймера.long startTime = System.nanoTime();
long estimatedTime = System.nanoTime() - startTime;
Таким образом, метод
System.currentTimeMillis() лучше применять для отображения и синхронизации абсолютного времени, а System.nanoTime() для измерения относительных интервалов времени.Java Learning 👩💻
👍10
Но, возможно, вы не знали, что начиная с Java 8, интерфейсы могут иметь реализацию с помощью методов по умолчанию. Это позволяет добавлять новые методы в интерфейс, не разрушая код, который его уже реализует.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥1😱1
Java Streams позволяют легко и эффективно работать с коллекциями данных, такими как списки, используя функциональный подход.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Java позволяет использовать локальные переменные внутри лямбда-выражений, но с одним важным ограничением: переменные должны быть эффективно финальными (effectively final).
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
QueryDSL — это библиотека, которая позволяет строить типобезопасные SQL-запросы прямо на языке Java. Она поддерживает SQL, JPA, MongoDB и другие системы баз данных. Благодаря QueryDSL, разработчики могут писать сложные запросы без явного использования SQL, что значительно улучшает читаемость и поддержку кода.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁35❤🔥3
Optional.ifPresentOrElse() для обработки значения или выполнения альтернативного действияНачиная с Java 9, метод
Optional.ifPresentOrElse() позволяет выполнить действие, если значение присутствует, или выполнить другое действие, если значение отсутствует. Это помогает избавиться от лишних проверок на наличие значения.• Optional.ifPresentOrElse() упрощает обработку значений и позволяет добавить fallback-логику в случае отсутствия значения.• Этот метод делает код более компактным и читабельным, устраняя необходимость использовать громоздкие условные конструкции.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Stream.takeWhile() для фильтрации данныхStream.takeWhile() — это метод, который появился в Java 9 и позволяет получать элементы потока до тех пор, пока выполняется заданное условие. Как только условие перестаёт выполняться, поток завершает свою работу, и оставшиеся элементы не проверяются.• takeWhile() полезен для работы с отсортированными данными, где нужно выбрать элементы, соответствующие определённому критерию, до первого неподходящего элемента.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Javers — это мощная библиотека для отслеживания изменений в Java-объектах. Она помогает сохранять и сравнивать состояния объектов, что особенно полезно при необходимости ведения истории изменений данных. С помощью Javers можно легко отслеживать, какие поля были изменены и на какие значения.
🗣 Javers — отличный выбор для приложений, где важна история изменений объектов и их версионность.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Collectors.collectingAndThen() для преобразования результатов коллектораCollectors.collectingAndThen() позволяет сначала применить коллектор для сбора данных, а затем преобразовать результат с помощью заданной функции. Это полезно, когда нужно применить дополнительную обработку к собранным данным, например, сделать коллекцию неизменяемой.• collectingAndThen() упрощает код, предоставляя возможность применить пост-обработку к результату коллектора.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥1
Tinylog — это минималистичная и быстрая библиотека логирования, которая имеет простой синтаксис и богатый набор возможностей, включая асинхронное логирование, конфигурацию через файлы и фильтрацию по уровням. Она идеально подходит для приложений, которым требуется базовое логирование с минимальными затратами ресурсов.
• Tinylog — отличный выбор для небольших проектов, где не нужны сложные системы логирования.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥1
Reflections — это небольшая, но мощная библиотека для Java, которая позволяет сканировать классы, методы, поля и аннотации во время выполнения. С её помощью можно быстро находить компоненты по заданным критериям, например, все классы, реализующие определённый интерфейс, или все методы, помеченные определённой аннотацией.
• Reflections упрощает динамический анализ классов и может быть полезен при реализации системы плагинов, регистрации классов или поиске обработчиков событий.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Checkstyle
Checkstyle — это статический анализатор кода Java, который помогает разработчикам писать код в соответствии с заданными стандартами кодирования. Он может проверять код на различные проблемы, такие как несоответствие стандартам кодирования, дублирование кода, неиспользуемые переменные и методы, неправильные комментарии.
Java Learning👩💻
Checkstyle — это статический анализатор кода Java, который помогает разработчикам писать код в соответствии с заданными стандартами кодирования. Он может проверять код на различные проблемы, такие как несоответствие стандартам кодирования, дублирование кода, неиспользуемые переменные и методы, неправильные комментарии.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Что такое Apache Commons Net?
Apache Commons Net — это библиотека Java с открытым исходным кодом, которая реализует клиентскую часть многих основных интернет-протоколов.
Цель библиотеки:
— Предоставить базовый доступ к протоколам, а не высокоуровневые абстракции.
— Сделать разработку сетевых приложений Java более простой и удобной.
Как использовать Apache Commons Net?
1. Добавьте библиотеку в свой проект.
2. Включите необходимые пакеты в ваш код.
3. Создайте экземпляр класса, соответствующего нужному протоколу.
4. Используйте методы класса для взаимодействия с протоколом.
Java Learning👩💻
Apache Commons Net — это библиотека Java с открытым исходным кодом, которая реализует клиентскую часть многих основных интернет-протоколов.
Цель библиотеки:
— Предоставить базовый доступ к протоколам, а не высокоуровневые абстракции.
— Сделать разработку сетевых приложений Java более простой и удобной.
Как использовать Apache Commons Net?
1. Добавьте библиотеку в свой проект.
2. Включите необходимые пакеты в ваш код.
3. Создайте экземпляр класса, соответствующего нужному протоколу.
4. Используйте методы класса для взаимодействия с протоколом.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Fluent Interface
Fluent Interface (Текучий интерфейс) — это шаблон проектирования, который позволяет создавать код, читающийся как текст на естественном языке.
Он достигается путем создания методов, которые возвращают ссылку на this объект, позволяя вызывать их в цепочке.
Java Learning👩💻
Fluent Interface (Текучий интерфейс) — это шаблон проектирования, который позволяет создавать код, читающийся как текст на естественном языке.
Он достигается путем создания методов, которые возвращают ссылку на this объект, позволяя вызывать их в цепочке.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤🔥2
Стирание типов
Стирание типов (type erasure) — это процесс, при котором информация о типах параметризованных типов (generic types) удаляется во время компиляции и не сохраняется во время выполнения программы.
Java Learning👩💻
Стирание типов (type erasure) — это процесс, при котором информация о типах параметризованных типов (generic types) удаляется во время компиляции и не сохраняется во время выполнения программы.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍4❤🔥1🔥1
Mockito
Mockito — это фреймворк для создания заглушек (mocks) в Java. Заглушки — это имитаторы реальных объектов, которые используются при тестировании кода.
Зачем использовать Mockito?
С помощью Mockito вы можете легко создавать заглушки для сложных объектов, что позволяет вам сосредоточиться на тестировании конкретного фрагмента кода. Также заглушки Mockito позволяют вам имитировать различные сценарии, что помогает вам написать более надежные тесты.
Java Learning👩💻
Mockito — это фреймворк для создания заглушек (mocks) в Java. Заглушки — это имитаторы реальных объектов, которые используются при тестировании кода.
Зачем использовать Mockito?
С помощью Mockito вы можете легко создавать заглушки для сложных объектов, что позволяет вам сосредоточиться на тестировании конкретного фрагмента кода. Также заглушки Mockito позволяют вам имитировать различные сценарии, что помогает вам написать более надежные тесты.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
ZipFile
ZipFile — это класс, который используется для чтения содержимого ZIP-архивов. Он позволяет вам перебирать записи в архиве, получать информацию о них и извлекать их содержимое.
Java Learning👩💻
ZipFile — это класс, который используется для чтения содержимого ZIP-архивов. Он позволяет вам перебирать записи в архиве, получать информацию о них и извлекать их содержимое.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2