Как используется класс Future?
Класс Future является частью пакета java.util.concurrent, и он используется для представления результата асинхронной операции или задачи, которая выполняется в фоновом потоке. Future позволяет вам управлять и получать результаты выполнения задачи в будущем, даже если она еще не завершилась.
@javalib #java
Класс Future является частью пакета java.util.concurrent, и он используется для представления результата асинхронной операции или задачи, которая выполняется в фоновом потоке. Future позволяет вам управлять и получать результаты выполнения задачи в будущем, даже если она еще не завершилась.
@javalib #java
👍14🔥3❤2
Forwarded from Java Guru 🤓
Что выведет следующий код?
Anonymous Quiz
20%
15
13%
15.0
5%
RuntimeException
58%
Ошибка компиляции
4%
15 или 15.0 в случайном порядке
👍16🎉5🔥4
Приглашаем на бесплатный вебинар!
🗓 18 декабря в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java-разработчик» от Otus.
На занятии мы с нуля создадим интерактивную новогоднюю открытку с помощью Java и фреймворка LibGDX.
Вы сможете предложить свои идеи, и мы реализуем их в реальном времени — вы увидите, как рождается код.
Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.
🔗 Ссылка на регистрацию: https://vk.cc/cFS6dN
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruPlease open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🔥2
Java varargs
Java varargs (variable arguments) — это механизм, предоставляемый Java, который позволяет методу принимать переменное количество аргументов одного типа. Он позволяет передавать любое количество аргументов заданного типа в метод, без явного указания массива аргументов.
Для объявления переменного количества аргументов в Java используется троеточие (...) после типа данных аргумента в определении метода.
@javalib #java
Java varargs (variable arguments) — это механизм, предоставляемый Java, который позволяет методу принимать переменное количество аргументов одного типа. Он позволяет передавать любое количество аргументов заданного типа в метод, без явного указания массива аргументов.
Для объявления переменного количества аргументов в Java используется троеточие (...) после типа данных аргумента в определении метода.
@javalib #java
👍16🔥7
Forwarded from Java Guru 🤓
Какая строка инициализации приведёт к ошибке?
Anonymous Quiz
45%
1
4%
2
5%
3
29%
4
17%
Ошибки не будет
❤6👍3🔥3😁3
Класс java.lang
Класс java.lang — это базовый пакет, который автоматически импортируется в любую программу на Java.
Содержит фундаментальные классы, как Object, String, Integer и т. д., определяет общие классы-исключения, такие как NullPointerException, ArithmeticException, класс Math с математическими функциями, System для взаимодействия с системой.
Также включает класс Thread для многопоточного программирования, интерфейсы Cloneable, Runnable, Comparable, определяет класс Class, представляющий классы времени выполнения.
@javalib #java
Класс java.lang — это базовый пакет, который автоматически импортируется в любую программу на Java.
Содержит фундаментальные классы, как Object, String, Integer и т. д., определяет общие классы-исключения, такие как NullPointerException, ArithmeticException, класс Math с математическими функциями, System для взаимодействия с системой.
Также включает класс Thread для многопоточного программирования, интерфейсы Cloneable, Runnable, Comparable, определяет класс Class, представляющий классы времени выполнения.
@javalib #java
👍19🔥8❤3😁2
Forwarded from Java Guru 🤓
Где ошибка в коде?
Anonymous Quiz
3%
Вывод элементов в цикле приводит к ConcurrentModificationException
16%
Неправильное объявление массива
2%
Переменная arr должна быть статической
7%
Неверный синтаксис цикла for
72%
Оператор <= приводит к ArrayIndexOutOfBoundsException
❤14👍8
Media is too big
VIEW IN TELEGRAM
Основы маппинга Entity в DTO в Spring: Простое введение!
Узнайте, как правильно маппить Entity в DTO в Spring и защитить свое приложение от утечек данных!
В этом видео мы разбираем основы маппинга в Spring: как преобразовывать Entity в DTO для повышения безопасности и производительности приложения. Мы не будем углубляться в сложные сценарии, такие как связи One-to-Many или Many-to-One — эти темы мы оставим для следующих видео. Если вы только начинаете, это видео станет отличным стартом для освоения базовых принципов!👨💻
📺 🗣 СМОТРЕТЬ RUTUBE
🌐 🗣 СМОТРЕТЬ VKVIDEO
@javalib #java
Узнайте, как правильно маппить Entity в DTO в Spring и защитить свое приложение от утечек данных!
В этом видео мы разбираем основы маппинга в Spring: как преобразовывать Entity в DTO для повышения безопасности и производительности приложения. Мы не будем углубляться в сложные сценарии, такие как связи One-to-Many или Many-to-One — эти темы мы оставим для следующих видео. Если вы только начинаете, это видео станет отличным стартом для освоения базовых принципов!
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2🔥2😁2
Отложенная инициализация
Отложенная инициализация — это паттерн проектирования, который позволяет отложить создание объекта до момента его реального использования. Он полезен, когда создание объекта требует значительных ресурсов или происходит в условиях, когда объект может не понадобиться.
В Java есть несколько способов реализации отложенной инициализации. Два наиболее распространенных подхода — это использование двойной проверки и использование внутреннего класса. На картинке мы рассмотрели использование двойной проверки (Double-Checked Locking).
Отложенная инициализация — это паттерн проектирования, который позволяет отложить создание объекта до момента его реального использования. Он полезен, когда создание объекта требует значительных ресурсов или происходит в условиях, когда объект может не понадобиться.
В Java есть несколько способов реализации отложенной инициализации. Два наиболее распространенных подхода — это использование двойной проверки и использование внутреннего класса. На картинке мы рассмотрели использование двойной проверки (Double-Checked Locking).
👍7❤4🔥3
Forwarded from Java Guru 🤓
👍9🔥3
FileChannel
FileChannel используется для работы с файлами на низкоуровневом вводе-выводе.
Основные возможности класса FileChannel:
— Чтение данных из файла и запись данных в файл.
— Работа с файлом по смещениям. Можно получить текущее смещение в файле, переместить указатель чтения/записи в нужное смещение.
— Маппинг файлов в память. Файл можно отобразить в память и работать с его содержимым как с массивом байтов.
— Блокировка частей файла. Позволяет защитить критические участки файла от одновременной записи.
— Асинхронная работа с файлами.
FileChannel эффективнее потокового ввода-вывода, т. к. избавляет от накладных расходов на создание объектов и буферизацию.
Используется в приложениях, где нужна высокая производительность работы с файлами.
@javalib #java
FileChannel используется для работы с файлами на низкоуровневом вводе-выводе.
Основные возможности класса FileChannel:
— Чтение данных из файла и запись данных в файл.
— Работа с файлом по смещениям. Можно получить текущее смещение в файле, переместить указатель чтения/записи в нужное смещение.
— Маппинг файлов в память. Файл можно отобразить в память и работать с его содержимым как с массивом байтов.
— Блокировка частей файла. Позволяет защитить критические участки файла от одновременной записи.
— Асинхронная работа с файлами.
FileChannel эффективнее потокового ввода-вывода, т. к. избавляет от накладных расходов на создание объектов и буферизацию.
Используется в приложениях, где нужна высокая производительность работы с файлами.
@javalib #java
❤9👍6🔥6
Паттерн Цепочка обязанностей (Chain of Responsibility)
Chain of Responsibility — это поведенческий паттерн, который позволяет передавать запросы по цепочке обработчиков, пока один из них не обработает запрос. Каждый обработчик в цепочке решает, может ли он обработать запрос или передать его следующему по цепочке.
Использование:
🔹 Когда нужно избежать жесткой привязки отправителя запроса к получателю.
🔹 Когда запрос должен быть обработан несколькими объектами, но заранее неизвестно, кто именно обработает запрос.
🔹 Когда необходимо гибко настраивать систему, добавляя или убирая обработчиков.
Преимущества:
1️⃣ Ослабляет связанность между объектами, отправляющими запросы, и объектами, обрабатывающими их.
2️⃣ Позволяет динамически добавлять новые обработчики в цепочку.
3️⃣ Способствует соблюдению принципа единственной ответственности, позволяя каждому обработчику заниматься своей задачей.
Недостатки:
1️⃣ Может быть сложнее отслеживать, кто в конечном итоге обработал запрос, особенно при длинных цепочках.
2️⃣ Не гарантирует, что запрос будет обработан, если ни один из обработчиков не способен это сделать.
3️⃣ Может усложнить структуру программы при использовании большого числа обработчиков.
📌 Паттерн полезен, когда необходимо разделить ответственность за обработку запросов между несколькими объектами, не создавая прямых зависимостей между ними.
@javalib #java
Chain of Responsibility — это поведенческий паттерн, который позволяет передавать запросы по цепочке обработчиков, пока один из них не обработает запрос. Каждый обработчик в цепочке решает, может ли он обработать запрос или передать его следующему по цепочке.
Использование:
🔹 Когда нужно избежать жесткой привязки отправителя запроса к получателю.
🔹 Когда запрос должен быть обработан несколькими объектами, но заранее неизвестно, кто именно обработает запрос.
🔹 Когда необходимо гибко настраивать систему, добавляя или убирая обработчиков.
Преимущества:
Недостатки:
📌 Паттерн полезен, когда необходимо разделить ответственность за обработку запросов между несколькими объектами, не создавая прямых зависимостей между ними.
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥6❤5
Инкапсуляция
Инкапсуляция — это принцип ООП, который заключается в сокрытии внутреннего представления класса от внешнего мира. Для этого используются модификаторы доступа: private, protected, public.
Обычно поля класса делаются private или protected, а методы — public. Это позволяет скрыть реализацию класса и предоставить к ней контролируемый доступ через public методы.
При запуске этой программы на выходе мы получим:
John 0
@javalib #java
Инкапсуляция — это принцип ООП, который заключается в сокрытии внутреннего представления класса от внешнего мира. Для этого используются модификаторы доступа: private, protected, public.
Обычно поля класса делаются private или protected, а методы — public. Это позволяет скрыть реализацию класса и предоставить к ней контролируемый доступ через public методы.
При запуске этой программы на выходе мы получим:
John 0
@javalib #java
❤11👍8🔥5
Forwarded from Java Guru 🤓
Что делает аннотация @CsvSource в данном тесте?
Anonymous Quiz
64%
Передаёт набор данных для выполнения параметризованных тестов
22%
Загружает данные для тестов из внешнего CSV-файла
3%
Генерирует случайные параметры для теста
2%
Осуществляет запуск тестов в определённой последовательности
9%
Изменяет поведение метода, чтобы возвращать значения из CSV
👍8🔥5😁5❤1
❓Java Guru - вопросы и задачи с собеседований. Канал с помощью которого ты точно получишь оффер!
👩💻 Android Developer - канал для андроид разработчиков! Статьи, вопросы и задачи с собеседований, лайфхаки.
👩💻 Kotlin Developer - самый топовый канал для котлин разработчика!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
📰 Java News - канал с последними новостями из мира Java!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
📰 Java News - канал с последними новостями из мира Java!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥2
Конструктор по умолчанию
Конструктор по умолчанию предоставляется компилятором Java, если в классе не определен ни один другой конструктор. Конструктор по умолчанию инициализирует все поля класса значениями по умолчанию (например, 0 для числовых типов, false для типа boolean, null для ссылочных типов).
Если же в классе определен хотя бы один конструктор (с параметрами или без), компилятор не будет предоставлять конструктор по умолчанию, и его необходимо определить явно, если он нужен.
В этом примере мы определяем класс MyClass с двумя полями: x и y, а также определяем конструктор по умолчанию, который выводит сообщение при вызове. В методе main создаем экземпляр класса MyClass, используя конструктор по умолчанию, и выводим значения полей x и y, которые инициализированы значениями по умолчанию.
@javalib #java
Конструктор по умолчанию предоставляется компилятором Java, если в классе не определен ни один другой конструктор. Конструктор по умолчанию инициализирует все поля класса значениями по умолчанию (например, 0 для числовых типов, false для типа boolean, null для ссылочных типов).
Если же в классе определен хотя бы один конструктор (с параметрами или без), компилятор не будет предоставлять конструктор по умолчанию, и его необходимо определить явно, если он нужен.
В этом примере мы определяем класс MyClass с двумя полями: x и y, а также определяем конструктор по умолчанию, который выводит сообщение при вызове. В методе main создаем экземпляр класса MyClass, используя конструктор по умолчанию, и выводим значения полей x и y, которые инициализированы значениями по умолчанию.
@javalib #java
👍13❤3🔥2