Может ли примитивный тип данных попасть в Heap?
Спросят с вероятностью 12%
Обычно примитивные типы данных (например, int, double) хранятся на стеке (stack), когда они определены как локальные переменные внутри методов. Но примитивы могут "попасть" в кучу (heap), когда они являются частью объекта или обернуты в специальные классы-обертки (Integer, Long, Double и т.д.), которые хранятся в куче.
Обертки примитивных типов
Каждый примитивный тип имеет свой класс-обертку. Например, int можно обернуть в Integer, а double — в Double. Когда примитив обернут в такой класс, он хранится в куче как часть объекта.
Примитивные типы как часть объектов
Если примитив является полем объекта, его значение будет храниться в куче вместе с этим объектом. Например, если у вас есть класс Person с полем int age, то значение age будет храниться в куче вместе с объектом Person.
Пример
В этом примере
Итог
Хотя примитивные типы данных обычно хранятся на стеке, они могут попасть в кучу, если являются частью объекта или обернуты в соответствующие классы-обертки. Это позволяет примитивам участвовать в динамическом управлении памятью и объектно-ориентированных структурах данных, сохраняя при этом эффективность работы с данными.
Java | Вопросы с собеседований
Спросят с вероятностью 12%
Обычно примитивные типы данных (например, int, double) хранятся на стеке (stack), когда они определены как локальные переменные внутри методов. Но примитивы могут "попасть" в кучу (heap), когда они являются частью объекта или обернуты в специальные классы-обертки (Integer, Long, Double и т.д.), которые хранятся в куче.
Обертки примитивных типов
Каждый примитивный тип имеет свой класс-обертку. Например, int можно обернуть в Integer, а double — в Double. Когда примитив обернут в такой класс, он хранится в куче как часть объекта.
Примитивные типы как часть объектов
Если примитив является полем объекта, его значение будет храниться в куче вместе с этим объектом. Например, если у вас есть класс Person с полем int age, то значение age будет храниться в куче вместе с объектом Person.
Пример
public class Person {
int age; // Примитивный тип данных внутри объекта, который хранится в куче
}
public class Main {
public static void main(String[] args) {
Integer number = 5; // Обертка для int, хранится в куче
Person person = new Person(); // Объект, хранящийся в куче, с примитивным полем
person.age = 25; // Примитивное значение age хранится в куче вместе с объектом person
}
}
В этом примере
number
(обернутый int) и person
(объект с полем age) хранятся в куче.Итог
Хотя примитивные типы данных обычно хранятся на стеке, они могут попасть в кучу, если являются частью объекта или обернуты в соответствующие классы-обертки. Это позволяет примитивам участвовать в динамическом управлении памятью и объектно-ориентированных структурах данных, сохраняя при этом эффективность работы с данными.
Java | Вопросы с собеседований
Как объявить и инициализировать переменную типа int со значением 10 в Java?
Anonymous Quiz
82%
A) int x = 10;
18%
B) integer x = 10;
0%
C) Integer x = 10;
0%
D) x = 10;
Как работает оператор try-with-resources?
Спроси с вероятностью 12%
Try-with-resources — это конструкция в Java, которая автоматически управляет ресурсами, например, потоками ввода/вывода или соединениями с базой данных. Если ресурс реализует интерфейс AutoCloseable или Closeable, он может быть использован в try-with-resources.
Как это работает?
Try-with-resources автоматически закрывает ресурсы, объявленные в круглых скобках после оператора try, независимо от того, завершился ли блок try успешно или возникло исключение. Это упрощает код, так как нет необходимости явно закрывать ресурс в блоке finally.
Пример без try-with-resources
До Java 7 для закрытия ресурсов использовался блок finally:
Пример с try-with-resources
С Java 7 всё стало проще:
В этом примере InputStream автоматически закроется после выполнения блока try, даже если возникнет исключение. Это делает код короче и безопаснее, уменьшая вероятность утечек ресурсов.
Преимущества try-with-resources
1️⃣ Автоматическое закрытие ресурсов: Гарантирует, что каждый ресурс будет закрыт после использования, что предотвращает утечки ресурсов.
2️⃣ Упрощение кода: Уменьшает количество кода и улучшает его читабельность.
3️⃣ Улучшение управления исключениями: Позволяет более эффективно управлять исключениями, связанными с ресурсами.
Try-with-resources упрощает работу с ресурсами, автоматизируя их закрытие и снижая риск ошибок, связанных с их неправильным управлением. Это делает код более надежным и читабельным.
Спроси с вероятностью 12%
Try-with-resources — это конструкция в Java, которая автоматически управляет ресурсами, например, потоками ввода/вывода или соединениями с базой данных. Если ресурс реализует интерфейс AutoCloseable или Closeable, он может быть использован в try-with-resources.
Как это работает?
Try-with-resources автоматически закрывает ресурсы, объявленные в круглых скобках после оператора try, независимо от того, завершился ли блок try успешно или возникло исключение. Это упрощает код, так как нет необходимости явно закрывать ресурс в блоке finally.
Пример без try-with-resources
До Java 7 для закрытия ресурсов использовался блок finally:
InputStream input = null;
try {
input = new FileInputStream("file.txt");
// Чтение из файла
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (input != null) {
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Пример с try-with-resources
С Java 7 всё стало проще:
try (InputStream input = new FileInputStream("file.txt")) {
// Чтение из файла
} catch (IOException ex) {
ex.printStackTrace();
}
В этом примере InputStream автоматически закроется после выполнения блока try, даже если возникнет исключение. Это делает код короче и безопаснее, уменьшая вероятность утечек ресурсов.
Преимущества try-with-resources
1️⃣ Автоматическое закрытие ресурсов: Гарантирует, что каждый ресурс будет закрыт после использования, что предотвращает утечки ресурсов.
2️⃣ Упрощение кода: Уменьшает количество кода и улучшает его читабельность.
3️⃣ Улучшение управления исключениями: Позволяет более эффективно управлять исключениями, связанными с ресурсами.
Try-with-resources упрощает работу с ресурсами, автоматизируя их закрытие и снижая риск ошибок, связанных с их неправильным управлением. Это делает код более надежным и читабельным.
Что такое SpringScope?
Спросят с вероятностью 12%
"Scope" (область видимости) в Spring — это способ управлять жизненным циклом и видимостью бинов (объектов, управляемых Spring IoC контейнером). Область видимости бина определяет, как и когда создаются и уничтожаются экземпляры бинов, а также как они разделяются между другими объектами и компонентами приложения.
Встроенные области видимости Spring
1️⃣ Singleton (Одиночка)
Это область видимости по умолчанию. При использовании Singleton, Spring создает и хранит один экземпляр бина на контейнер. Этот единственный экземпляр будет предоставлен всем, кто запрашивает бин с таким именем.
2️⃣ Prototype (Прототип)
С областью видимости Prototype Spring создает новый экземпляр бина каждый раз, когда он запрашивается. Это удобно, когда нужны независимые экземпляры объекта для каждого использования.
3️⃣ Request
Используется в веб-приложениях. Для бина с областью видимости Request создается новый экземпляр для каждого HTTP запроса.
4️⃣ Session
Также для веб-приложений. С областью видимости Session создается один экземпляр бина на каждую HTTP сессию.
5️⃣ Application
В этой области видимости бин создается на уровне ServletContext, то есть существует в единственном экземпляре на весь жизненный цикл веб-приложения. Это похоже на Singleton, но на уровне всего приложения.
6️⃣ WebSocket
Эта область видимости применяется к бинам, которые должны быть привязаны к жизненному циклу WebSocket сессии.
Пример кода
Почему это важно?
Понимание и правильное использование областей видимости позволяет грамотно управлять жизненным циклом компонентов приложения, оптимизировать использование ресурсов и поддерживать необходимую степень изоляции и независимости между компонентами. Это способствует созданию чистой, модульной и легко тестируемой архитектуры приложения.
Спросят с вероятностью 12%
"Scope" (область видимости) в Spring — это способ управлять жизненным циклом и видимостью бинов (объектов, управляемых Spring IoC контейнером). Область видимости бина определяет, как и когда создаются и уничтожаются экземпляры бинов, а также как они разделяются между другими объектами и компонентами приложения.
Встроенные области видимости Spring
1️⃣ Singleton (Одиночка)
Это область видимости по умолчанию. При использовании Singleton, Spring создает и хранит один экземпляр бина на контейнер. Этот единственный экземпляр будет предоставлен всем, кто запрашивает бин с таким именем.
2️⃣ Prototype (Прототип)
С областью видимости Prototype Spring создает новый экземпляр бина каждый раз, когда он запрашивается. Это удобно, когда нужны независимые экземпляры объекта для каждого использования.
3️⃣ Request
Используется в веб-приложениях. Для бина с областью видимости Request создается новый экземпляр для каждого HTTP запроса.
4️⃣ Session
Также для веб-приложений. С областью видимости Session создается один экземпляр бина на каждую HTTP сессию.
5️⃣ Application
В этой области видимости бин создается на уровне ServletContext, то есть существует в единственном экземпляре на весь жизненный цикл веб-приложения. Это похоже на Singleton, но на уровне всего приложения.
6️⃣ WebSocket
Эта область видимости применяется к бинам, которые должны быть привязаны к жизненному циклу WebSocket сессии.
Пример кода
@Component
@Scope("prototype")
public class MyPrototypeBean {
// Класс с областью видимости Prototype
}
Почему это важно?
Понимание и правильное использование областей видимости позволяет грамотно управлять жизненным циклом компонентов приложения, оптимизировать использование ресурсов и поддерживать необходимую степень изоляции и независимости между компонентами. Это способствует созданию чистой, модульной и легко тестируемой архитектуры приложения.
Для чего используется Spring boot ?
Спросят с вероятностью 12%
Spring Boot используется для значительного упрощения создания и развертывания приложений на основе Spring. Он позволяет быстро создавать производительные веб-приложения и микросервисы, без необходимости вручную настраивать все аспекты приложения. Вот основные преимущества Spring Boot:
1️⃣ Автоконфигурация: автоматически настраивает приложение на основе добавленных зависимостей. Например, если в проекте есть Spring Web MVC, Spring Boot сам настроит приложение как веб-приложение.
2️⃣ Стартовые зависимости: предоставляет готовые наборы зависимостей (стартеры), что упрощает добавление компонентов. Например, для добавления Spring Security достаточно указать spring-boot-starter-security в Maven или Gradle.
3️⃣ Встроенные серверы: поддерживает встроенные серверы Tomcat, Jetty или Undertow, что устраняет необходимость во внешних серверах приложений. Приложение запускается как обычное Java-приложение с методом main().
4️⃣ Мониторинг и управление: предоставляет актуаторы, которые предоставляют REST-эндпоинты для мониторинга состояния приложения.
5️⃣ Простое развертывание: приложения можно легко упаковать в JAR или WAR файлы для простого развертывания в традиционных или облачных средах.
6️⃣ Простая настройка: управление конфигурацией приложения через файлы свойств или YAML, включая внешние конфигурации для различных сред.
Spring Boot значительно упрощает процесс разработки, делая его доступным и эффективным для создания как микросервисов, так и монолитных приложений на основе Spring.
Спросят с вероятностью 12%
Spring Boot используется для значительного упрощения создания и развертывания приложений на основе Spring. Он позволяет быстро создавать производительные веб-приложения и микросервисы, без необходимости вручную настраивать все аспекты приложения. Вот основные преимущества Spring Boot:
1️⃣ Автоконфигурация: автоматически настраивает приложение на основе добавленных зависимостей. Например, если в проекте есть Spring Web MVC, Spring Boot сам настроит приложение как веб-приложение.
2️⃣ Стартовые зависимости: предоставляет готовые наборы зависимостей (стартеры), что упрощает добавление компонентов. Например, для добавления Spring Security достаточно указать spring-boot-starter-security в Maven или Gradle.
3️⃣ Встроенные серверы: поддерживает встроенные серверы Tomcat, Jetty или Undertow, что устраняет необходимость во внешних серверах приложений. Приложение запускается как обычное Java-приложение с методом main().
4️⃣ Мониторинг и управление: предоставляет актуаторы, которые предоставляют REST-эндпоинты для мониторинга состояния приложения.
5️⃣ Простое развертывание: приложения можно легко упаковать в JAR или WAR файлы для простого развертывания в традиционных или облачных средах.
6️⃣ Простая настройка: управление конфигурацией приложения через файлы свойств или YAML, включая внешние конфигурации для различных сред.
Spring Boot значительно упрощает процесс разработки, делая его доступным и эффективным для создания как микросервисов, так и монолитных приложений на основе Spring.
В чем отличие SQL от No SQL баз данных. От чего зависит выбор базы данных на проекте и как с ними нужно работать. Всю базу вы узнаете из этого небольшого ролика👅 🍑 👅
Str (IT-Community)
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Лучший Гайд по NoSQL для Начинающих | Redis, Mongo, Cassandra
Начинай обучение сейчас и стань востребованным разработчиком уже через 4 месяца! Тебя ждёт интенсивное обучение, изучение только актуальных технологий и инструментов, работа в команде, а также проект из 9 микросервисов для твоего портфолио!
НАЧАТЬ ОБУЧЕНИЕ:…
НАЧАТЬ ОБУЧЕНИЕ:…
Открытый онлайн-курс по изучению алгоритмов и структур данных. Основной код в курсе пишется на Python, но курс также подойдет для вас, если вы пишите на C/C++ или другом языке. Курс в основном состоит из лекционной части по ключевым алгоритмическим темам. Для полного освоения всех тем есть полная часть курса.
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет друзья! На связи Str - админ паблика
Мои каналы на данный момент:
🚬 Str (IT-Community) — Мой личный канал, в котором я делюсь своей жизнью, как разработчика, публикую материал по интересным технологиям, как по Frontend, так и по Backend разработке.👩💻 Str Frontend (IT-Community) — Канал посвящённый исключительно Frontend разработке. Тесты, статьи, обучающие видео и тд по js, react и другим инструментам Frontend разработчика👩💻 Str Backend (IT-Community) — Канал посвящённый исключительно Backend разработке. Тесты, статьи, обучающие видео и тд по различным Backend языкам программирования. Разбор актуальных инструментов, трендов Backend разработки👩💻 Str Code (IT-Community) — Канал общей направленности для программистов всех сфер.
╞ #Курсы — бесплатные курсы
╞ #Инструменты — библиотеки/фреймворки
╞ #Статьи — статьи
╞ #Тесты — практические тесты
╞ #Новости — новости из мира Backend`a
╞ #Видео — обучающие видео
╘ #Собеседования — записи собеседований
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰1
В этом видеоуроке автор реализует регистрацию и авторизацию, аутентификацию c хешированием пароля Bcrypt.
Вы научитесь использовать JWT токен, а также познакомитесь с ролевой моделью.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Простая авторизация на NODE JS. Роли пользователя. Express и MongoDB. JWT Access Token, bcrypt
В этом ролике мы реализуем регистрацию и авторизацию, аутентификацию c хешированием пароля bcrypt, научимся использовать JWT токен. Реализуем роли пользователя, разберемся с доступом для конкретной роли.
Мой курс "Продвинутый Frontend. В production на React"…
Мой курс "Продвинутый Frontend. В production на React"…
👍2
😴 Бэкенд - это не только API. Это еще и множество сервисов и приложений, помогающих делать крутые высоконагруженные приложения. В этом видео автор посмотрит современный стек, использующийся в коммерческой разработке.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Современная Backend Архитектура. Масштабируемые и высоконагруженные приложения
🎓 Обучение самым современным и востребованным технологиям, которые нужны backend разработчику, на практике: https://artemshumeiko.ru/
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: https://clck.ru/3B5gxT 💡
🔥 Забирай разбор production…
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: https://clck.ru/3B5gxT 💡
🔥 Забирай разбор production…
👍1
Forwarded from STR IT (Randomize Bot 🎲 [Рандомайзер])
Первый розыгрыш прошел. Заметил, что вам понравилась данная активность, а значит можем сразу начать следующий) Теперь все 3 книги - невероятно интересные, сам прочёл/читаю каждую и советую прочитать всем!
1. Грокаем алгоритмы 2
2. Чистая архитектура
3. English grammar in use (отличный учебник по английскому)
Условия для участия всё также просты:
1. Подписка на мои каналы по программированию:
Str (IT-Community) | Str Frontend (IT-Community) |
Str Code (IT-Community) | Str Backend (IT-Community)
2. Нажимай "Участвую"
Итоги будут - 15 февраля 12:00 по мск
Str (IT-Community) Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
В этом видео вы увидите пошаговый план как стать Backend разработчиком, только самое нужное.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Как стать Backend разработчиком | Пошаговый путь к Backend разработчику
Пошаговый план как стать Backend разработчиком, только самое нужное.
Партнер канала — Selectel, провайдер IT-инфраструктуры и облаков для проектов любого масштаба и сложности: https://slc.tl/xi7g7
Пройди обучение Backend разработке с 0 до Junior: https…
Партнер канала — Selectel, провайдер IT-инфраструктуры и облаков для проектов любого масштаба и сложности: https://slc.tl/xi7g7
Пройди обучение Backend разработке с 0 до Junior: https…
9 Git команд на 99% случаев жизни
Str Backend (IT-Community) | #Видео
Запутались в командах Git? В этом видеоролике автор объяснит 9 основных команд, которые вам действительно нужны для работы. Простыми словами, без лишней теории, и с крутыми анимациями.
Вы узнаете, как клонировать проекты, делать коммиты, управлять ветками, делиться изменениями с командой и многое другое.
Str Backend (IT-Community) | #Видео
YouTube
Лучший Гайд по Git Для Начинающих За 15 Минут
ШПАРГАЛКА ТУТ: https://www.faang.school/community?utm_source=youtube_video&utm_medium=organic&utm_campaign=library-java-junior&utm_content=video-66
Java Буткемп: https://www.faang.school/?utm_source=youtube_video&utm_medium=organic&utm_campaign=bootcamp…
Java Буткемп: https://www.faang.school/?utm_source=youtube_video&utm_medium=organic&utm_campaign=bootcamp…
❤1
Игра для изучения работы с Git
Str Backend (IT-Community) | #Курсы
В этой игре вы изучите вы на практике освоите все необходимые аспекты работы с Git с помощью карточек.
Изучать основной функционал GIT в игровой форме всегда эффективнее, сам начинал изучать этот инструмент с подобных игр)
Str Backend (IT-Community) | #Курсы
ohmygit.org
Oh My Git!
An open source game about learning Git
❤2
Шпаргалка по основным темам Backend-разработки
Str Backend (IT-Community) | #Курсы
Нашел для вас репозиторий, который представляет собой визуальную шпаргалку по основным темам Backend-разработки. Весь материал разделен на главы, включающие различные темы.
Каждая тема состоит из трех основных частей: Изображения, ключевые термины и концепции, источники.
Str Backend (IT-Community) | #Курсы
GitHub
GitHub - cheatsnake/backend-cheats: 📃 White paper for Backend developers
📃 White paper for Backend developers. Contribute to cheatsnake/backend-cheats development by creating an account on GitHub.
👍3
ООП На Простых Примерах | Объектно-Ориентированное Программирование
Str Backend (IT-Community) | #Видео
ООП (объектно-ориентированное программирование) неотъемлемая часть многих языков.
И разобраться со всеми этими методами, правилами инкапсуляции, наследованием, полиморфизмом не просто. Автор видео подготовил для тебя максимально простую видео-инструкцию с классной анимацией.
Всего за 30 минут ты поймешь, как работает ООП и научишься основным принципам!
Str Backend (IT-Community) | #Видео
YouTube
ООП На Простых Примерах | Объектно-Ориентированное Программирование
Начинай обучение сейчас и стань востребованным разработчиком уже через 4 месяца! Тебя ждёт интенсивное обучение, изучение только актуальных технологий и инструментов, работа в команде, а также проект из 9 микросервисов для твоего портфолио!
НАЧАТЬ ОБУЧЕНИЕ:…
НАЧАТЬ ОБУЧЕНИЕ:…
❤3
HTTP или HTTPS?
Str Backend (IT-Community) | #Видео
В этом видео мы рассмотрим, в чем заключается отличие между HTTP и HTTPS, а также обсудим риски, которые могут подстерегать вас и ваших пользователей при посещении сайтов, не имеющих заветной буквы S (secure) в конце.
Str Backend (IT-Community) | #Видео
YouTube
HTTP или HTTPS – как работает и в чем разница?
🦸 Курс по кибербезопасности:
https://wiki.merionet.ru/merion-academy/kurs-po-kiberbezopasnosti/?utm_source=YT&utm_content=HTTPS
О том, что такое и как работает HyperText Transfer Protocol (HTTP) и HyperText Transfer Protocol Secure (HTTPS). В видео разберемся…
https://wiki.merionet.ru/merion-academy/kurs-po-kiberbezopasnosti/?utm_source=YT&utm_content=HTTPS
О том, что такое и как работает HyperText Transfer Protocol (HTTP) и HyperText Transfer Protocol Secure (HTTPS). В видео разберемся…
❤4
Предельная оптимизация: Секреты максимальной эффективности в Go.
Str (IT-Community) | #Видео
Разработчики Go постоянно охотятся за каждой микросекундой производительности, стремясь создавать максимально эффективные приложения. В мире высоконагруженных систем каждый лишний байт и лишняя операция могут критически влиять на общую скорость работы программы.
Данная статья раскрывает профессиональные техники и нестандартные подходы для тех, кто уже применил классические методы оптимизации, но все еще жаждет выжать максимум производительности из своего кода на Go. Речь пойдет о глубоких техниках, которые позволяют трансформировать приложение, доводя его эффективность до абсолютного предела.
Str (IT-Community) | #Видео
Хабр
Выжимаем из Go максимум производительности
Разработчики, которые используют Go, сталкиваются с задачей выжать максимальную производительность из каждой строки кода. Но что делать, если оптимизировать уже нечего, а увеличивать скорость всё...
Искусство парсинга: извлечение данных с точностью хирурга в Python
Str (IT-Community) | #Статья
В данном руководстве мы разберем создание интеллектуального парсера, который не просто собирает информацию, но и умеет фильтровать контент с точностью хирургического скальпеля.
Вы научитесь писать код, способный селективно извлекать только релевантный текст, игнорируя баннеры, служебные вставки и второстепенный контент.
Str (IT-Community) | #Статья
Журнал «Код» программирование без снобизма
Создаем парсер самостоятельно: пошаговое руководство
Подробно рассказываем этапы создания своего парсера, для того чтобы можно было вытащить с любого сайта, что угодно: заголовки, поисковые фразы, цены и многое другое.
Создание масштабного приложения на Flask: Полный цикл разработки
Str (IT-Community) | #Статья
Статья представляет подробное руководство по созданию крупного веб-приложения с использованием Flask и комплекса современных технологий. Автор детально раскрывает процесс разработки, делясь профессиональными практиками и решениями.
Материал охватывает широкий стек технологий, включая Python, HTML, CSS, Bootstrap, базы данных и инструменты контейнеризации, что делает его ценным ресурсом для backend-разработчиков.
Str (IT-Community) | #Статья
Хабр
Давайте сделаем крупное приложение на Flask (язык Python)
На Хабре я часто вижу статьи о реализации тех или иных фич на Python-фреймворках. Я объединил все эти фичи в реальный проект с открытым исходным кодом , чтобы у вас сложилась целостная картина. Мы с...
✉️ Python: Революция в Email-коммуникациях
Str (IT-Community) | #Статья
Статья раскрывает секреты автоматизации email-рассылок с помощью Python, превращая рутинный процесс в высокоэффективный инструмент коммуникации. Разработчики получат практические навыки создания масштабируемых систем массовой отправки писем.
Материал станет незаменимым руководством для специалистов, которые хотят оптимизировать процессы информирования и маркетинга. Простые, но мощные техники Python позволят трансформировать подход к электронной коммуникации, сделав ее максимально удобной и продуктивной.
Str (IT-Community) | #Статья
Хабр
Почта без хлопот: автоматизация отправки писем с помощью Python
Привет-привет! С вами снова Оля — программист Учебного центра компании «Тензор». Ранее я писала здесь о разработке ботов в Telegram, но в моем отделе не скупятся на творческие задачи — так что и эта...