Please open Telegram to view this post
VIEW IN TELEGRAM
😁10💯4👍3🎉1
Что делает ключевое слово default в интерфейсах?
Anonymous Quiz
8%
Определяет конструктор по умолчанию
67%
Определяет реализацию метода по умолчанию в интерфейсе
13%
Указывает, что метод должен иметь видимость по умолчанию
5%
Указывает, что метод должен быть абстрактным
7%
Посмотреть ответ
👍4✍3🔥2
Анонимный класс в Java.
Нужно обязательно иметь представление о том, что такое анонимный класс, чтобы ответить на собеседовании!
И так, Анонимные классы – это классы, что не имеют имени и их создание происходит в момент инициализации объекта. Такие классы много где используются в Java и с ними вы ещё часто будете сталкиваться.
Рассмотрим небольшой пример.
Предположим что у нас есть интерфейс Auto с методом void flyingMoto(), который необходимо реализовать. Для реализации можно создать отдельный класс (например, FamilyAuto или WorkAuto), в нём реализовать интерфейс (заимплементить наш интерфейс Auto), далее создать объект на основе класса и через объект ссылаться на методы классы.
Звучит логично, но не оправдано с точки зрения количества действий.
Куда проще создать объект и для него сразу выполнить создание анонимного класса. Так и читается легче и меньше кода (мы не создали целый отдельный класс для имплементации интерфейса).
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
Нужно обязательно иметь представление о том, что такое анонимный класс, чтобы ответить на собеседовании!
И так, Анонимные классы – это классы, что не имеют имени и их создание происходит в момент инициализации объекта. Такие классы много где используются в Java и с ними вы ещё часто будете сталкиваться.
Рассмотрим небольшой пример.
Предположим что у нас есть интерфейс Auto с методом void flyingMoto(), который необходимо реализовать. Для реализации можно создать отдельный класс (например, FamilyAuto или WorkAuto), в нём реализовать интерфейс (заимплементить наш интерфейс Auto), далее создать объект на основе класса и через объект ссылаться на методы классы.
Звучит логично, но не оправдано с точки зрения количества действий.
Куда проще создать объект и для него сразу выполнить создание анонимного класса. Так и читается легче и меньше кода (мы не создали целый отдельный класс для имплементации интерфейса).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5✍3👨💻3
Какое предназначение оператора LIKE в SQL?
Anonymous Quiz
8%
Проверяет, существует ли значение в указанном списке значений
10%
Фильтрует строки, возвращаемые оператором SELECT
67%
Выполняет сопоставление с шаблоном для строки
12%
Проверяет, попадает ли значение в указанный диапазон
3%
Посмотреть ответ
✍4👍4❤3🔥1👨💻1
Лямбда-выражение в Java. Часть 1.
Продолжаем по-тихоньку подбираться к очень важной библиотеке Stream API в Java.
Лямбда-выражение или просто лямбда в Java — анонимная функция анонимного класса, реализующего функциональный интерфейс.
Структура лямбда-выражения.
Сигнатура лямбда-выражения соответствует сигнатуре абстрактного метода реализуемого функционального интерфейса. Можно даже сказать, что лямбда-выражение является реализацией абстрактного метода этого функционального интерфейса.
Главное отличие сигнатуры лямбда-выражения от сигнатуры метода в том, что она состоит только из двух частей: списка аргументов и тела, разделённых при помощи «—>».
Пример создания лямбда-выражения.
Чтобы лучше понять, что такое лямбда-выражения Java, следует рассмотреть пример создания синтаксиса. Реализуем некий функциональный интерфейс RentSearcher, с помощью которого сможем проверить, все квартиры, которые находятся в аренде ниже определенной цены (Картинка 1).
При использовании анонимного класса, процесс создания объекта будет выглядеть как на Картинке 2.
При этом объект RentSearcher можно описать с помощью лямбда-выражения, что позволит сделать запись аккуратнее (Картинка 3).
С помощью простых действий, элемент кода можно сделать еще аккуратнее, тем самым повысив качество кода (Картинка 3).
Благодаря Java лямбда функции можно сделать намного короче и лаконичнее. Подобного уменьшения невозможно добиться при добавлении классических анонимных классов.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
Продолжаем по-тихоньку подбираться к очень важной библиотеке Stream API в Java.
Лямбда-выражение или просто лямбда в Java — анонимная функция анонимного класса, реализующего функциональный интерфейс.
Структура лямбда-выражения.
Сигнатура лямбда-выражения соответствует сигнатуре абстрактного метода реализуемого функционального интерфейса. Можно даже сказать, что лямбда-выражение является реализацией абстрактного метода этого функционального интерфейса.
Главное отличие сигнатуры лямбда-выражения от сигнатуры метода в том, что она состоит только из двух частей: списка аргументов и тела, разделённых при помощи «—>».
Пример создания лямбда-выражения.
Чтобы лучше понять, что такое лямбда-выражения Java, следует рассмотреть пример создания синтаксиса. Реализуем некий функциональный интерфейс RentSearcher, с помощью которого сможем проверить, все квартиры, которые находятся в аренде ниже определенной цены (Картинка 1).
При использовании анонимного класса, процесс создания объекта будет выглядеть как на Картинке 2.
При этом объект RentSearcher можно описать с помощью лямбда-выражения, что позволит сделать запись аккуратнее (Картинка 3).
С помощью простых действий, элемент кода можно сделать еще аккуратнее, тем самым повысив качество кода (Картинка 3).
Благодаря Java лямбда функции можно сделать намного короче и лаконичнее. Подобного уменьшения невозможно добиться при добавлении классических анонимных классов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6✍3👨💻3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6✍3❤3⚡2🤓1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8✍3❤2💯1👨💻1
Лямбда-выражение в Java. Часть 2.
Рассмотрим еще один пример создания лямбда-выражения.
У нас есть некий интерфейс CarFilter с абстрактным методом test(Car car), который каким-то образом должен тестировать/фильтровать наши машины (и мы еще не решили как). Смотрим на Картинку 1.
Допустим, нам нужна реализация нашего интерфейса CarFilter, описанного выше, которая проверяла бы, что автомобиль выпущен не раньше 2010 года. Если мы будем использовать анонимный класс, то создание объекта этого класса, который реализует наш интерфейс CarFilter, будет выглядеть примерно как на Картинке 2.
Но мы можем описать объект, реализующий наш интерфейс CarFilter, при помощи лямбда-выражения (Картинка 3, сверху).
Однако, эту запись можно сделать ещё меньше как на Картинке 3, снизу.
Согласитесь, что такая запись значительно меньше и лаконичнее, чем использование анонимного класса.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
Рассмотрим еще один пример создания лямбда-выражения.
У нас есть некий интерфейс CarFilter с абстрактным методом test(Car car), который каким-то образом должен тестировать/фильтровать наши машины (и мы еще не решили как). Смотрим на Картинку 1.
Допустим, нам нужна реализация нашего интерфейса CarFilter, описанного выше, которая проверяла бы, что автомобиль выпущен не раньше 2010 года. Если мы будем использовать анонимный класс, то создание объекта этого класса, который реализует наш интерфейс CarFilter, будет выглядеть примерно как на Картинке 2.
Но мы можем описать объект, реализующий наш интерфейс CarFilter, при помощи лямбда-выражения (Картинка 3, сверху).
Однако, эту запись можно сделать ещё меньше как на Картинке 3, снизу.
Согласитесь, что такая запись значительно меньше и лаконичнее, чем использование анонимного класса.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5✍4👨💻4🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7✍4💯2👍1
Что делает функция COUNT в SQL?
Anonymous Quiz
3%
Вычисляет среднее значение столбца
2%
Извлекает максимальное значение в столбце
23%
Подсчитывает количество ненулевых значений в столбце
70%
Подсчитывает общее количество строк в таблице
3%
Посмотреть ответ
🎉4✍3👍2🤓2⚡1💯1
Лямбда-выражение в Java. Часть 3.
Применение лямбда-выражений.
Допустим у нас есть задача написать метод, выводящий из полученного списка автомобили, у которых тип кузова (body) — STATION_WAGON и мощность (power) — больше 200 л.с.
Скорее всего, мы напишем что-то вроде того, что на Картинке 1.
В целом, если нам требуется всего один подобный метод, то этот код можно оставить без изменений и даже не задумываться об использовании лямбда-выражений.
Но, допустим, у нас появляется задача реализовать ещё один метод, который бы выводил все автомобили, у которых кузов не PICKUP_TRUCK, или метод, который бы сохранял в БД все автомобили с мощностью двигателя более 150 л.с.
В этом случае логично было бы использовать сразу два функциональных интерфейса из пакета java.util.function:
– java.util.function.Predicate — для фильтрации
и
– java.util.function.Consumer — для действия, применяемого к подходящим объектам.
java.util.function.Predicate декларирует абстрактный метод test(), который принимает объект и возвращает значение типа boolean в зависимости от соответствия переданного объекта требуемым критериям.
java.util.function.Consumer декларирует абстрактный метод accept(), который принимает объект и выполняет над ним требуемые действия.
Метод printCars(List<Car> cars) превратится во что-то похожее на следующий метод, написанный на Картинке 2.
И первоначальную задачу вывести из полученного списка автомобили, у которых тип кузова (body) — STATION_WAGON и мощность (power) — больше 200 л.с. мы решили бы следующим вызовом метода processCars() с использованием лямбда-выражений (Картинка 3).
Или при помощи анонимных классов как на Картинке 4.
👩💻 Наш практический курс Java–разработчика
✅ JavaStart. Подписаться
Применение лямбда-выражений.
Допустим у нас есть задача написать метод, выводящий из полученного списка автомобили, у которых тип кузова (body) — STATION_WAGON и мощность (power) — больше 200 л.с.
Скорее всего, мы напишем что-то вроде того, что на Картинке 1.
В целом, если нам требуется всего один подобный метод, то этот код можно оставить без изменений и даже не задумываться об использовании лямбда-выражений.
Но, допустим, у нас появляется задача реализовать ещё один метод, который бы выводил все автомобили, у которых кузов не PICKUP_TRUCK, или метод, который бы сохранял в БД все автомобили с мощностью двигателя более 150 л.с.
В этом случае логично было бы использовать сразу два функциональных интерфейса из пакета java.util.function:
– java.util.function.Predicate — для фильтрации
и
– java.util.function.Consumer — для действия, применяемого к подходящим объектам.
java.util.function.Predicate декларирует абстрактный метод test(), который принимает объект и возвращает значение типа boolean в зависимости от соответствия переданного объекта требуемым критериям.
java.util.function.Consumer декларирует абстрактный метод accept(), который принимает объект и выполняет над ним требуемые действия.
Метод printCars(List<Car> cars) превратится во что-то похожее на следующий метод, написанный на Картинке 2.
И первоначальную задачу вывести из полученного списка автомобили, у которых тип кузова (body) — STATION_WAGON и мощность (power) — больше 200 л.с. мы решили бы следующим вызовом метода processCars() с использованием лямбда-выражений (Картинка 3).
Или при помощи анонимных классов как на Картинке 4.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7✍5🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8✍6💯5