Абстракция в Java
Абстракция — это способность выделять существенные характеристики объекта и упускать несущественные.
Абстракция позволяет сосредоточиться на важных свойствах и поведении объекта, скрыв детали реализации.
В Java абстракция реализуется с помощью абстрактных классов и интерфейсов.
Абстрактный класс содержит абстрактные методы без реализации. Подклассы обязаны реализовать эти методы.
Интерфейс задает «контракт», описывая поведение классов без деталей реализации. Классы реализуют интерфейс.
Реализация абстракции требует тщательного анализа предметной области и выделения общих свойств объектов.
Абстракция — это способность выделять существенные характеристики объекта и упускать несущественные.
Абстракция позволяет сосредоточиться на важных свойствах и поведении объекта, скрыв детали реализации.
В Java абстракция реализуется с помощью абстрактных классов и интерфейсов.
Абстрактный класс содержит абстрактные методы без реализации. Подклассы обязаны реализовать эти методы.
Интерфейс задает «контракт», описывая поведение классов без деталей реализации. Классы реализуют интерфейс.
Реализация абстракции требует тщательного анализа предметной области и выделения общих свойств объектов.
🔥11❤4👍2
В данном видео автор рассказывает о Enum в языке программирования Java. Показывает разные варианты применения Enum на примерах.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Java. Enum на примерах.
В данном видео я рассказываю о Enum в языке программирования Java. Показываю разные варианты применения Enum на примерах.
Поддержать канал на Boosty:
https://boosty.to/arhitutorials
Наш чатик в Telegram:
https://news.1rj.ru/str/ArhiTutorials
#arhitutorialsjava #ityoutubersru
Поддержать канал на Boosty:
https://boosty.to/arhitutorials
Наш чатик в Telegram:
https://news.1rj.ru/str/ArhiTutorials
#arhitutorialsjava #ityoutubersru
👍13❤4🔥4
С бесплатного открытого урока «Многопоточность в Java» от OTUS!
На вебинаре мы:
Поговорим об организации многопоточной обработки на Java, обсудим когда ее стоит применять и какие проблемы возникают при ее использовании.
Занятие подойдет:
Тем, кто только начинает программировать на Java или думает о начале обучения программированию.
В результате:
Вы получите понимание, что такое многопоточное программирование и как это делается на языке Java
Занятие пройдёт 19 марта в 20:00 мск и будет приурочено к старту курса «Специализация Java-разработчик».
👉🏻Для бесплатного участия и получения записи урока регистрируйтесь прямо сейчас: регистрация
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2😁2
Класс LocalDateTime
Класс LocalDateTime используется для работы с датой и временем без учета часового пояса.
Он появился в Java 8 в пакете java.time и является частью новой date/time API, которая пришла на смену устаревшим классам Date и Calendar.
Основные возможности класса LocalDateTime:
— Хранение даты и времени с точностью до наносекунд.
— Получение различных компонентов даты/времени (год, месяц, день недели и т. д.).
— Выполнение операций сложения и вычитания дат и интервалов.
— Сравнение и сортировка дат по времени.
— Форматирование и парсинг строк по заданному шаблону.
Класс LocalDateTime используется для работы с датой и временем без учета часового пояса.
Он появился в Java 8 в пакете java.time и является частью новой date/time API, которая пришла на смену устаревшим классам Date и Calendar.
Основные возможности класса LocalDateTime:
— Хранение даты и времени с точностью до наносекунд.
— Получение различных компонентов даты/времени (год, месяц, день недели и т. д.).
— Выполнение операций сложения и вычитания дат и интервалов.
— Сравнение и сортировка дат по времени.
— Форматирование и парсинг строк по заданному шаблону.
👍17❤3
🎙Спикер Александр Царев — Tech Lead в Сбере и кандидат технических наук.
На вебинаре вы:
- узнаете, что такое дамп памяти, как его собрать и какие инструменты существуют для этих целей;
- познакомитесь с инструментом Eclipse Memory Analyzer, с помощью которого можно исследовать дампы памяти;
- получите ответы на все свои вопросы.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3🔥2
Бесплатный практический урок 💥«Эффекты в Scala на примере ZIO»💥
🔥 Спикер Алексей Воронец — руководитель разработки в «NAUMEN». На вебинаре:
- узнаем о предпосылках и истории возникновения ZIO;
- сформируем представление, какие задачи решают так называемые «функциональные эффекты» в целом и ZIO в частности;
- попрактикуемся в создании и комбинировании ZIO-эффектов.
Занятие пройдёт 25 марта в 20:00 мск в рамках курса «Scala-разработчик». Доступна рассрочка на обучение!
👉 Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/34S0/
🔥 Спикер Алексей Воронец — руководитель разработки в «NAUMEN». На вебинаре:
- узнаем о предпосылках и истории возникновения ZIO;
- сформируем представление, какие задачи решают так называемые «функциональные эффекты» в целом и ZIO в частности;
- попрактикуемся в создании и комбинировании ZIO-эффектов.
Занятие пройдёт 25 марта в 20:00 мск в рамках курса «Scala-разработчик». Доступна рассрочка на обучение!
👉 Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/34S0/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru❤6
charBuffer
Метод charBuffer() используется для получения буфера символов из строки. Он принадлежит java.nio.
Этот метод возвращает объект CharBuffer, который представляет последовательность символов строки.
CharBuffer позволяет эффективно читать и манипулировать символами строки без создания копий.
В этом примере создается строка «Hello». Затем из этой строки получаем буфер символов методом charBuffer().
В цикле посимвольно читаем из буфера символы и выводим их на экран.
Метод charBuffer() используется для получения буфера символов из строки. Он принадлежит java.nio.
Этот метод возвращает объект CharBuffer, который представляет последовательность символов строки.
CharBuffer позволяет эффективно читать и манипулировать символами строки без создания копий.
В этом примере создается строка «Hello». Затем из этой строки получаем буфер символов методом charBuffer().
В цикле посимвольно читаем из буфера символы и выводим их на экран.
👍16🔥2❤1
Бесплатный курс по Backend-разработке от Газпромбанка 💻
Газпромбанк приглашает тебя в бесплатную академию GPB IT Factory с оффером для лучших студентов.
Ты сможешь прокачать свои скиллы в backend-разработке, создать с нуля чат-бот «Минибанк» на языке Java/Kotlin и Java Spring Boot приложение, которые сможешь добавить в свое портфолио.
Кроме этого, лучшие студенты программы смогут присоединиться к команде Газпромбанка на позицию начинающего специалиста с перспективой роста до middle-позиции.
Мы ждем студентов 2 курса магистратуры или тех, кто уже завершил(-а) обучение в вузе и сможет посещать занятия в Москве. Для прохождения отбора достаточно обладать инженерным мышлением, владеть одним из языков программирования, а также знать основы SQL, Computer Science и Linux.
📍 Оставить заявку
Газпромбанк приглашает тебя в бесплатную академию GPB IT Factory с оффером для лучших студентов.
Ты сможешь прокачать свои скиллы в backend-разработке, создать с нуля чат-бот «Минибанк» на языке Java/Kotlin и Java Spring Boot приложение, которые сможешь добавить в свое портфолио.
Кроме этого, лучшие студенты программы смогут присоединиться к команде Газпромбанка на позицию начинающего специалиста с перспективой роста до middle-позиции.
Мы ждем студентов 2 курса магистратуры или тех, кто уже завершил(-а) обучение в вузе и сможет посещать занятия в Москве. Для прохождения отбора достаточно обладать инженерным мышлением, владеть одним из языков программирования, а также знать основы SQL, Computer Science и Linux.
📍 Оставить заявку
❤7😁2👍1🔥1
Контейнер Optional
Optional — это контейнер, который может содержать какое-то значение или не содержать ничего.
Он используется для обозначения отсутствия значения вместо null. Это позволяет избежать ошибок NullPointerException.
Optional появился в Java 8. Он представлен классом java.util.Optional.
Чтобы создать экземпляр Optional, используются статические методы:
— empty() для пустого Optional.
— of() для Optional с заданным значением.
Для получения значения из Optional используются методы get(), или orElse() с указанием значения по умолчанию. Также есть методы фильтрации значений, например filter(), map() и flatMap().
Optional — это контейнер, который может содержать какое-то значение или не содержать ничего.
Он используется для обозначения отсутствия значения вместо null. Это позволяет избежать ошибок NullPointerException.
Optional появился в Java 8. Он представлен классом java.util.Optional.
Чтобы создать экземпляр Optional, используются статические методы:
— empty() для пустого Optional.
— of() для Optional с заданным значением.
Для получения значения из Optional используются методы get(), или orElse() с указанием значения по умолчанию. Также есть методы фильтрации значений, например filter(), map() и flatMap().
👍17🔥4❤1
🔥 Какие актуальные технологии нужно знать для разработки на Spring?
🎙 Расскажет Александр Оруджев — Senior Software Engineer. Встречаемся на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом разберете:
📅 Занятие пройдёт 20 марта в 20:00 мск и будет приурочено к старту курса «Разработчик на Spring Framework». Доступна рассрочка на обучение!
👉 Пройдите короткий тест прямо сейчас, чтобы занять место на открытом уроке и получить запись: https://otus.pw/xfKP/
- паттерны Controller, Service и Repository;
- какую пользу они могут принести;
- особенности использования данных шаблонов в Spring.
📅 Занятие пройдёт 20 марта в 20:00 мск и будет приурочено к старту курса «Разработчик на Spring Framework». Доступна рассрочка на обучение!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruPlease open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3🔥2
Keycloak - популярный SSO-сервис (Single Sign On), предоставляющий единую точку входа для всех ваших приложений, реализующий протоколы OAuth и OIDC. Keycloak может быть использован в связке со Spring Security с минимальным количеством дополнительного кода. В этом ролике автор продемонстрирует настройку ресурс-сервера и логина Spring Security OAuth2 с использованием Keycloak.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Keycloak и Spring Security
Keycloak - популярный SSO-сервис (Single Sign On), предоставляющий единую точку входа для всех ваших приложений, реализующий протоколы OAuth и OIDC. Keycloak может быть использован в связке со Spring Security с минимальным количеством дополнительного кода.…
🔥9👍7❤1
Можно ли считать Final переменную константой?
Поскольку у нас не получится присвоить новое значение для final переменной, кажется, что это переменные константы. Но это только на первый взгляд. Если тип данных, на который ссылается переменная — immutable, то да, это константа.
А если тип данных mutable, то есть изменяемый, при помощи методов и переменных можно будет изменить значение объекта, на который ссылается final переменная, и в таком случае назвать ее константой нельзя. Так вот, на примере видно, что часть финальных переменных действительно константы, а часть — нет, и их можно изменить.
Поскольку у нас не получится присвоить новое значение для final переменной, кажется, что это переменные константы. Но это только на первый взгляд. Если тип данных, на который ссылается переменная — immutable, то да, это константа.
А если тип данных mutable, то есть изменяемый, при помощи методов и переменных можно будет изменить значение объекта, на который ссылается final переменная, и в таком случае назвать ее константой нельзя. Так вот, на примере видно, что часть финальных переменных действительно константы, а часть — нет, и их можно изменить.
👍25❤2☃2🔥1🍾1
Тестирование является неотъемлемым этапом разработки программного обеспечения и обеспечивает качество разрабатываемых проектов, соблюдение требований и спецификаций, а также позволяет выявлять ошибки на ранних этапах. В пятом ролике серии речь пойдёт о модульном и интеграционном тестировании проектов на основе Spring WebMVC. Кроме этого в ролике рассматривается применение Testcontainers для развёртывания тестовой БД, а так же WireMock - для имитации сторонних REST-сервисов.
В цикле роликов "Разработка проектов со Spring" автор рассказывает на простых примерах о процессе разработки веб-приложений и REST-сервисов на языке программирования Java с использованием экосистемы Spring. Данный цикл охватывает разработку классических и реактивных проектов, вопросы их сопровождения, такие как документация и мониториг, адаптацию их к облачной инфраструктуре и процесс их развёртывания в Docker и Kubernetes.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
SC24EP05 Тестирование веб-приложений - Разработка проектов со Spring #java #spring #softwaretesting
Тестирование является неотъемлемым этапом разработки программного обеспечения и обеспечивает качество разрабатываемых проектов, соблюдение требований и спецификаций, а также позволяет выявлять ошибки на ранних этапах. В пятом ролике серии речь пойдёт о модульном…
👍21❤4🔥2
Екатеринбург, 21 марта приглашаем на митап IT Talk by Sber! 😉
Поговорим о том, как сделать правильную анимацию в браузере, обсудим управление UI через backend и узнаем о проблемах наследования кода. А после — ответим на все вопросы, пообщаемся и просто отлично проведём время.
Спикеры и темы:
- Михаил Прядун, Frontend Developer, «Правильная анимация и хороший CSS»
- Алексей Кардашов, Java Developer, «Управление UI через backend в стеке jvm с использованием composite screen platform»
- Ирина Шахтарина, аналитик, «Это всё, что останется после меня: проблемы наследования кода и передачи права на него»
Встречаемся 21 марта в 18:30 в Технохабе Сбера по адресу ул. Розы Люксембург, 56а.
Ждём всех крутых разработчиков Урала! Регистрируйтесь по ссылке 💚
Поговорим о том, как сделать правильную анимацию в браузере, обсудим управление UI через backend и узнаем о проблемах наследования кода. А после — ответим на все вопросы, пообщаемся и просто отлично проведём время.
Спикеры и темы:
- Михаил Прядун, Frontend Developer, «Правильная анимация и хороший CSS»
- Алексей Кардашов, Java Developer, «Управление UI через backend в стеке jvm с использованием composite screen platform»
- Ирина Шахтарина, аналитик, «Это всё, что останется после меня: проблемы наследования кода и передачи права на него»
Встречаемся 21 марта в 18:30 в Технохабе Сбера по адресу ул. Розы Люксембург, 56а.
Ждём всех крутых разработчиков Урала! Регистрируйтесь по ссылке 💚
❤8👍3🔥2
- Осваивай Spring!
Тест на знание языка Java
— Ответь на 21 вопрос и проверь, насколько хорошо ты знаешь язык Java и готов освоить Spring. Сможешь сдать — пройдёшь на продвинутый онлайн-курс "Разработчик на Spring" Framework со скидкой!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruPlease open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥1🎅1
Предположим, есть метод, который может выбросить IOException и FileNotFoundException в какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?
Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок
Таким образом, исходя из факта, что
Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок
catch(Exception ex) {}, иначе все дальнейшие блоки catch() уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex).Таким образом, исходя из факта, что
FileNotFoundException extends IOException сначала нужно обработать FileNotFoundException, а затем уже IOException.👍16❤14😁6🔥1
Что такое «абстракция»?
Абстрагирование – это способ выделить набор общих характеристик объекта, исключая из рассмотрения частные и незначимые. Соответственно, абстракция – это набор всех таких характеристик.
Представьте, что водитель едет в автомобиле по оживлённому участку движения. Понятно, что в этот момент он не будет задумываться о химическом составе краски автомобиля, особенностях взаимодействия шестерёнок в коробке передач или влияния формы кузова на скорость (разве что, автомобиль стоит в глухой пробке и водителю абсолютно нечем заняться). Однако, руль, педали, указатель поворота он будет использовать регулярно.
Абстрагирование – это способ выделить набор общих характеристик объекта, исключая из рассмотрения частные и незначимые. Соответственно, абстракция – это набор всех таких характеристик.
Представьте, что водитель едет в автомобиле по оживлённому участку движения. Понятно, что в этот момент он не будет задумываться о химическом составе краски автомобиля, особенностях взаимодействия шестерёнок в коробке передач или влияния формы кузова на скорость (разве что, автомобиль стоит в глухой пробке и водителю абсолютно нечем заняться). Однако, руль, педали, указатель поворота он будет использовать регулярно.
👍12❤6🔥4
В шестом ролике серии автор снова возвращается к теме разработки веб-приложений, но на этот раз речь пойдёт о реактивных веб-приложениях на основе Spring WebFlux и Project Reactor. Попутно будут задеты темы применения инструментов интернационализации, Thymeleaf, а так же Jakarta Bean Validation, включая нюансы применения последней в реактивных веб-приложениях.
В цикле роликов "Разработка проектов со Spring" автор рассказывает на простых примерах о процессе разработки веб-приложений и REST-сервисов на языке программирования Java с использованием экосистемы Spring. Данный цикл охватывает разработку классических и реактивных проектов, вопросы их сопровождения, такие как документация и мониторинг, адаптацию их к облачной инфраструктуре и процесс их развёртывания в Docker и Kubernetes.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
SC24EP06 Разработка реактивного веб-приложения - Разработка проектов со Spring
В шестом ролике серии я снова возвращаюсь к теме разработки веб-приложений, но на этот раз речь пойдёт о реактивных веб-приложениях на основе Spring WebFlux и Project Reactor. Попутно будут задеты темы применения инструментов интернационализации, Thymeleaf…
👍23❤5😁1
С чего начать изучение микросервисной архитектуры?
Прийти на бесплатный практический урок «Аутентификации и авторизация микросервисов», где опытный эксперт разберет:
1. Введение в микросервисную архитектуру
2. Паттерн аутентификации в микросервисах
3. Паттерн авторизации и управление доступом
4. Безопасность и мониторинг
Занятие пройдёт 3 апреля в 20:00 мск в рамках курса «Microservice Architecture». Доступна рассрочка на обучение!
Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cvyTCi
Прийти на бесплатный практический урок «Аутентификации и авторизация микросервисов», где опытный эксперт разберет:
1. Введение в микросервисную архитектуру
2. Паттерн аутентификации в микросервисах
3. Паттерн авторизации и управление доступом
4. Безопасность и мониторинг
Занятие пройдёт 3 апреля в 20:00 мск в рамках курса «Microservice Architecture». Доступна рассрочка на обучение!
Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cvyTCi
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru👍6❤4