Java. Сортировки
Java. Сортировка пузырьком.
Java. О сортировке выбором.
Java. Быстрая сортировка. Объяснение на пальцах)
Java. Оценка сложности алгоритмов сортировки.
Java. Сортировка слиянием.
Java. Сортировка подсчетом.
Java. Сортировка вставками.
Java. Сортировка расческой. От пузырька до расчески.
👉@BookJava
Java. Сортировка пузырьком.
Java. О сортировке выбором.
Java. Быстрая сортировка. Объяснение на пальцах)
Java. Оценка сложности алгоритмов сортировки.
Java. Сортировка слиянием.
Java. Сортировка подсчетом.
Java. Сортировка вставками.
Java. Сортировка расческой. От пузырька до расчески.
👉@BookJava
Бонни и Клайд, зима и Новый год, черное и белое, в конце концов, сметана и пельмени - есть вещи, которые прекрасно сочетаются и дополняют друг друга. Можно сказать, неотделимые друг от друга. В случае с Java-разработчиком это Spring Framework.
Мы, конечно, шутим, но если говорить серьезно, то без уверенного знания этого фреймворка сложно рассчитывать на действительно крутые проекты и серьезные задачи. Почему? Потому что более 90% вакансий Java-разработчика требуют знания Spring Framework. А еще потому что Spring Framework — де-факто стандарт разработки промышленных приложений для языка Java. Кажется, этого уже должно быть достаточно, чтобы изучить самый популярный фреймворк для Java. Но почему-то, нередко junior и middle разработчики пренебрегают этим знанием. Во многих онлайн школах на курсах либо комплексное и долгое обучение Java-разработке с нуля, где лишь поверхностно изучается Spring, либо отдельные курсы по Spring, но на английском языке. Короче, долго или сложно для изучения.
Мы в Слёрме не понаслышке знаем и регулярно видим, как часто разработчики просто машинально используют Spring, даже не вникая в его возможности. Все бы ничего, но когда возникает проблема или не шаблонная задача, они не понимают, куда смотреть и что делать. А что делать? Изучать разные сценарии использования Spring Framework, желательно на практике. А пока ловите экспертное мнение о плюсах и минусах самого популярного Java-фреймворка:
https://habr.com/ru/company/southbridge/blog/698780/
Мы, конечно, шутим, но если говорить серьезно, то без уверенного знания этого фреймворка сложно рассчитывать на действительно крутые проекты и серьезные задачи. Почему? Потому что более 90% вакансий Java-разработчика требуют знания Spring Framework. А еще потому что Spring Framework — де-факто стандарт разработки промышленных приложений для языка Java. Кажется, этого уже должно быть достаточно, чтобы изучить самый популярный фреймворк для Java. Но почему-то, нередко junior и middle разработчики пренебрегают этим знанием. Во многих онлайн школах на курсах либо комплексное и долгое обучение Java-разработке с нуля, где лишь поверхностно изучается Spring, либо отдельные курсы по Spring, но на английском языке. Короче, долго или сложно для изучения.
Мы в Слёрме не понаслышке знаем и регулярно видим, как часто разработчики просто машинально используют Spring, даже не вникая в его возможности. Все бы ничего, но когда возникает проблема или не шаблонная задача, они не понимают, куда смотреть и что делать. А что делать? Изучать разные сценарии использования Spring Framework, желательно на практике. А пока ловите экспертное мнение о плюсах и минусах самого популярного Java-фреймворка:
https://habr.com/ru/company/southbridge/blog/698780/
Хабр
Spring. Экспертное мнение о плюсах и минусах самого популярного Java-фреймворка
Spring является самым популярным инструментом при разработке промышленных приложений на Java – от больших монолитных приложений до микросервисов. Сразу стоит отметить, что под термином Spring мы...
Что такое функциональный интерфейс?
Так называется специальная разновидность интерфейса, который определяет тип-функцию, коллбэк.
Чтобы компилятор считал интерфейс функциональным, этот интерфейс должен добавлять единственный абстрактный метод. Вдобавок он может содержать любое количество дефолтных методов с телом. Переобъявление методов класса
Никаких других ограничений на метод не накладывается: он не ограничен в типах аргументов и возвращаемого значения, может иметь любое название и список выбрасываемых исключений (checked и unchecked).
Даже при выполнении всех этих условий, никакие другие разновидности типов кроме interface не могут считаться функциональными интерфейсами.
Дополнительно функциональный интерфейс принято помечать аннотацией
Типичные примеры функциональных интерфейсов:
👉@BookJava
Так называется специальная разновидность интерфейса, который определяет тип-функцию, коллбэк.
Чтобы компилятор считал интерфейс функциональным, этот интерфейс должен добавлять единственный абстрактный метод. Вдобавок он может содержать любое количество дефолтных методов с телом. Переобъявление методов класса
Object
также игнорируется.Никаких других ограничений на метод не накладывается: он не ограничен в типах аргументов и возвращаемого значения, может иметь любое название и список выбрасываемых исключений (checked и unchecked).
Даже при выполнении всех этих условий, никакие другие разновидности типов кроме interface не могут считаться функциональными интерфейсами.
Дополнительно функциональный интерфейс принято помечать аннотацией
@FunctionalInterface
. Наличие этой аннотации не необходимо, но оно даёт дополнительную валидацию: её присутствие на нефункциональном типе спровоцирует ошибку компиляции.Типичные примеры функциональных интерфейсов:
Callable, Supplier, Comparable.
👉@BookJava
Какие некоторые из важных особенностей и преимуществ Spring Framework?
Spring Framework обеспечивает решения многих задач, с которыми сталкиваются Java-разработчики и организации, которые хотят создать информационную систему, основанную на платформе Java. Из-за широкой функциональности трудно определить наиболее значимые структурные элементы, из которых он состоит. Spring Framework не всецело связан с платформой Java Enterprise, несмотря на его масштабную интеграцию с ней, что является важной причиной его популярности.
Spring Framework, вероятно, наиболее известен как источник расширений (features), нужных для эффективной разработки сложных бизнес-приложений вне тяжеловесных программных моделей, которые исторически были доминирующими в промышленности. Ещё одно его достоинство в том, что он ввел ранее неиспользуемые функциональные возможности в сегодняшние господствующие методы разработки, даже вне платформы Java. Этот фреймворк предлагает последовательную модель и делает её применимой к большинству типов приложений, которые уже созданы на основе платформы Java. Считается, что Spring Framework реализует модель разработки, основанную на лучших стандартах индустрии, и делает её доступной во многих областях Java. Таким образом к достоинствам Spring можно отнести:
• Относительная легкость в изучении и применении фреймворка в разработке и поддержке приложения.
• Внедрение зависимостей (DI) и инверсия управления (IoC) позволяют писать независимые друг от друга компоненты, что дает преимущества в командной разработке, переносимости модулей и т.д..
• Spring IoC контейнер управляет жизненным циклом Spring Bean и настраивается наподобие JNDI lookup (поиска).
• Проект Spring содержит в себе множество подпроектов, которые затрагивают важные части создания софта, такие как вебсервисы, веб программирование, работа с базами данных, загрузка файлов, обработка ошибок и многое другое. Всё это настраивается в едином формате и упрощает поддержку приложения.
👉@BookJava
Spring Framework обеспечивает решения многих задач, с которыми сталкиваются Java-разработчики и организации, которые хотят создать информационную систему, основанную на платформе Java. Из-за широкой функциональности трудно определить наиболее значимые структурные элементы, из которых он состоит. Spring Framework не всецело связан с платформой Java Enterprise, несмотря на его масштабную интеграцию с ней, что является важной причиной его популярности.
Spring Framework, вероятно, наиболее известен как источник расширений (features), нужных для эффективной разработки сложных бизнес-приложений вне тяжеловесных программных моделей, которые исторически были доминирующими в промышленности. Ещё одно его достоинство в том, что он ввел ранее неиспользуемые функциональные возможности в сегодняшние господствующие методы разработки, даже вне платформы Java. Этот фреймворк предлагает последовательную модель и делает её применимой к большинству типов приложений, которые уже созданы на основе платформы Java. Считается, что Spring Framework реализует модель разработки, основанную на лучших стандартах индустрии, и делает её доступной во многих областях Java. Таким образом к достоинствам Spring можно отнести:
• Относительная легкость в изучении и применении фреймворка в разработке и поддержке приложения.
• Внедрение зависимостей (DI) и инверсия управления (IoC) позволяют писать независимые друг от друга компоненты, что дает преимущества в командной разработке, переносимости модулей и т.д..
• Spring IoC контейнер управляет жизненным циклом Spring Bean и настраивается наподобие JNDI lookup (поиска).
• Проект Spring содержит в себе множество подпроектов, которые затрагивают важные части создания софта, такие как вебсервисы, веб программирование, работа с базами данных, загрузка файлов, обработка ошибок и многое другое. Всё это настраивается в едином формате и упрощает поддержку приложения.
👉@BookJava
Java Exception Handling Cheat Sheet
https://javaconceptoftheday.com/java-exception-handling-cheat-sheet/
👉@BookJava
https://javaconceptoftheday.com/java-exception-handling-cheat-sheet/
👉@BookJava
Как инициализировать переменную функционального интерфейса?
Функциональный интерфейс – всё ещё интерфейс, поэтому остаются доступными стандартные способы. Интерфейс можно реализовать обычным классом, и затем создать его экземпляр оператором
Основное преимущество, которое дает функциональный интерфейс – два дополнительных способа инициализации параметров и переменных.
1. Лямбда-выражение:
2. Ссылка на метод:
На эти способы накладывается небольшое ограничение: тип функционального параметра/переменной должен быть указан явно. Это значит, что лямбдой или метод-референсом нельзя инициализировать переменную, объявленную ключевым словом var. Также, чтобы передать лямбду или референс в параметр generic-типа, этот тип должен быть ограничен функциональным интерфейсом (должен стираться в него).
👉@BookJava
Функциональный интерфейс – всё ещё интерфейс, поэтому остаются доступными стандартные способы. Интерфейс можно реализовать обычным классом, и затем создать его экземпляр оператором
new
. Можно совместить эти два действия, и создать экземпляр анонимного класса.Основное преимущество, которое дает функциональный интерфейс – два дополнительных способа инициализации параметров и переменных.
1. Лямбда-выражение:
(x, y) -> x * y
2. Ссылка на метод:
Math::sqrt
На эти способы накладывается небольшое ограничение: тип функционального параметра/переменной должен быть указан явно. Это значит, что лямбдой или метод-референсом нельзя инициализировать переменную, объявленную ключевым словом var. Также, чтобы передать лямбду или референс в параметр generic-типа, этот тип должен быть ограничен функциональным интерфейсом (должен стираться в него).
👉@BookJava
Какие подклассы класса Reader вы знаете, для чего они предназначены?
👉@BookJava
• Reader
- абстрактный класс, описывающий символьный ввод;• BufferedReader
- буферизованный входной символьный поток;• CharArrayReader
- входной поток, который читает из символьного массива;• FileReader
- входной поток, читающий файл;• FilterReader
- абстрактный класс, предоставляющий интерфейс для классов-надстроек;• InputStreamReader
- входной поток, транслирующий байты в символы;• LineNumberReader
- входной поток, подсчитывающий строки;• PipedReader
- входной канал;• PushbackReader
- входной поток, позволяющий возвращать символы обратно в поток;• StringReader
- входной поток, читающий из строки.👉@BookJava
Продвинутый Java (от разработчика из JetBrains)
Java. Урок 1. Обзор Java. Лекции от Senior Java-разработчика из JetBrains
Java. Урок 2. Javadoc и наследование
Java. Урок 3. Исключения и обобщенные типы в Java
Java. Урок 4. Коллекции Java и Stream API
Java. Урок 5. Многопоточность. Часть 1
👉@BookJava
Java. Урок 1. Обзор Java. Лекции от Senior Java-разработчика из JetBrains
Java. Урок 2. Javadoc и наследование
Java. Урок 3. Исключения и обобщенные типы в Java
Java. Урок 4. Коллекции Java и Stream API
Java. Урок 5. Многопоточность. Часть 1
👉@BookJava