#java
Как вернуть несколько значений из метода?
Иногда у нас возникает потребность вернуть зразу несколько значений из метода. Например, у нас есть метод который ищет минимальное и максимальное значения массива, и соответственно, должен их вернуть, но как же это сделать?
Вы просто должны вернуть массив найденных значений.
Как вернуть несколько значений из метода?
Иногда у нас возникает потребность вернуть зразу несколько значений из метода. Например, у нас есть метод который ищет минимальное и максимальное значения массива, и соответственно, должен их вернуть, но как же это сделать?
Вы просто должны вернуть массив найденных значений.
#C
Бонсай и С
Забавный код нашел на GitLab. Если хотите вырастить свой ASCII Бонсай, или интересно, как эта структура работает, то вот ссылка. Написан на чистом С. Хороший инструмент, чтобы удивлять новичков
Не забудьте прочитать README, не все системы поддерживают.
https://gitlab.com/jallbrit/cbonsai
Бонсай и С
Забавный код нашел на GitLab. Если хотите вырастить свой ASCII Бонсай, или интересно, как эта структура работает, то вот ссылка. Написан на чистом С. Хороший инструмент, чтобы удивлять новичков
Не забудьте прочитать README, не все системы поддерживают.
https://gitlab.com/jallbrit/cbonsai
#backEnd
Docker — это платформа, которая предназначена для разработки, развёртывания и запуска приложений в контейнерах. Слово «Docker» в последнее время стало чем-то вроде синонима слова «контейнеризация». И если вы ещё не пользуетесь Docker, но при этом работаете или собираетесь работать в сферах разработки приложений или анализа данных, то Docker — это то, с чем вы непременно встретитесь в будущем.
Предшественниками контейнеров Docker были виртуальные машины. Виртуальная машина, как и контейнер, изолирует от внешней среды приложение и его зависимости. Однако контейнеры Docker обладают преимуществами перед виртуальными машинами. Так, они потребляют меньше ресурсов, их очень легко переносить, они быстрее запускаются и приходят в работоспособное состояние.
Docker — это платформа, которая предназначена для разработки, развёртывания и запуска приложений в контейнерах. Слово «Docker» в последнее время стало чем-то вроде синонима слова «контейнеризация». И если вы ещё не пользуетесь Docker, но при этом работаете или собираетесь работать в сферах разработки приложений или анализа данных, то Docker — это то, с чем вы непременно встретитесь в будущем.
Предшественниками контейнеров Docker были виртуальные машины. Виртуальная машина, как и контейнер, изолирует от внешней среды приложение и его зависимости. Однако контейнеры Docker обладают преимуществами перед виртуальными машинами. Так, они потребляют меньше ресурсов, их очень легко переносить, они быстрее запускаются и приходят в работоспособное состояние.
#Spring
Начнем срывать покровы с самых базовых понятий Spring. Бин (bean) — это не что иное, как самый обычный объект. Разница лишь в том, что бинами принято называть те объекты, которые управляются Spring-ом и живут внутри его DI-контейнера. Бином является почти все в Spring — сервисы, контроллеры, репозитории, по сути все приложение состоит из набора бинов. Их можно регистрировать, получать в качестве зависимостей, проксировать, мокать и т.п.
Начнем срывать покровы с самых базовых понятий Spring. Бин (bean) — это не что иное, как самый обычный объект. Разница лишь в том, что бинами принято называть те объекты, которые управляются Spring-ом и живут внутри его DI-контейнера. Бином является почти все в Spring — сервисы, контроллеры, репозитории, по сути все приложение состоит из набора бинов. Их можно регистрировать, получать в качестве зависимостей, проксировать, мокать и т.п.
#practice
Сайты для тренировок на задачках перед собеседованием
LeetCode
Один из самых популярных сайтов для подготовки к техническим собеседованиям — leetcode.com. ... Он предназначен для тренировки, чтобы "набить руку" или вспомнить, как проходить собеседования после перерыва, когда базовые знания уже есть, но существуют проблемы со скоростью, тестированием или с выбором алгоритма.
https://leetcode.com/problemset/all/
CodeWars
Сodewars программирование — это сплошной фан. Зарабатывайте очки, повышайте свой рейтинг, создавайте кланы. Ресурс предлагает огромную подборку задач на более чем 20 языках программирования. На codewars вы сможете обсудить задачи с другими игроками, а также посмотреть альтернативные решения.
https://www.codewars.com/dashboard
Сайты для тренировок на задачках перед собеседованием
LeetCode
Один из самых популярных сайтов для подготовки к техническим собеседованиям — leetcode.com. ... Он предназначен для тренировки, чтобы "набить руку" или вспомнить, как проходить собеседования после перерыва, когда базовые знания уже есть, но существуют проблемы со скоростью, тестированием или с выбором алгоритма.
https://leetcode.com/problemset/all/
CodeWars
Сodewars программирование — это сплошной фан. Зарабатывайте очки, повышайте свой рейтинг, создавайте кланы. Ресурс предлагает огромную подборку задач на более чем 20 языках программирования. На codewars вы сможете обсудить задачи с другими игроками, а также посмотреть альтернативные решения.
https://www.codewars.com/dashboard
LeetCode
LeetCode - The World's Leading Online Programming Learning Platform
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
Сложность поиска элемента по индексу для Arraylist (get)
Anonymous Quiz
15%
O(n-1)
31%
O(n)
48%
O(1)
6%
O(2n)
#java
Класс Object и его методы
Все классы, даже те, которые мы добавляем в свой проект, являются неявно производными от класса Object. Поэтому все типы и классы могут реализовать те методы, которые определены в классе Object. Рассмотрим эти методы.
Метод toString
служит для получения представления данного объекта в виде строки. При попытке вывести строковое представления какого-нибудь объекта, как правило, будет выводиться полное имя класса.
Метод hashCode
позволяет задать некоторое числовое значение, которое будет соответствовать данному объекту или его хэш-код. По данному числу, например, можно сравнивать объекты.
Метод getClass
позволяет получить тип данного объекта.
Метод equals
сравнивает два объекта на равенство
Класс Object и его методы
Все классы, даже те, которые мы добавляем в свой проект, являются неявно производными от класса Object. Поэтому все типы и классы могут реализовать те методы, которые определены в классе Object. Рассмотрим эти методы.
Метод toString
служит для получения представления данного объекта в виде строки. При попытке вывести строковое представления какого-нибудь объекта, как правило, будет выводиться полное имя класса.
Метод hashCode
позволяет задать некоторое числовое значение, которое будет соответствовать данному объекту или его хэш-код. По данному числу, например, можно сравнивать объекты.
Метод getClass
позволяет получить тип данного объекта.
Метод equals
сравнивает два объекта на равенство
Что выведется на экран?
'you are doing well' [2:999]
'you are doing well' [2:999]
Anonymous Quiz
18%
'you are doing well'
8%
' '
59%
Index error.
16%
'u are doing well'
#java #definition
Что такое JSP?
Java Server Pages представляет технологию, которая позволяет создавать динамические веб-страницы. Изначально JSP (вместе с сервлетами) на заре развития Java EE являлись доминирующим подходом к веб-разработке на языке Java. И хотя в настоящее время они уступило свое место другой технологии - JSF, тем не менее JSP продолжают широко использоваться.
По сути Java Server Page или JSP представляет собой html-код с вкраплениями кода Java. В то же время станицы jsp - это не стандартные html-страницы. Когда приходит запрос к определенной странице JSP, то сервер обрабатывает ее, генерирует из нее код html и отправляет его клиенту. В итоге пользователь после обращения к странице JSP видит в своем браузере обычную html-страницу.
Что такое JSP?
Java Server Pages представляет технологию, которая позволяет создавать динамические веб-страницы. Изначально JSP (вместе с сервлетами) на заре развития Java EE являлись доминирующим подходом к веб-разработке на языке Java. И хотя в настоящее время они уступило свое место другой технологии - JSF, тем не менее JSP продолжают широко использоваться.
По сути Java Server Page или JSP представляет собой html-код с вкраплениями кода Java. В то же время станицы jsp - это не стандартные html-страницы. Когда приходит запрос к определенной странице JSP, то сервер обрабатывает ее, генерирует из нее код html и отправляет его клиенту. В итоге пользователь после обращения к странице JSP видит в своем браузере обычную html-страницу.
Результатом выполнения программы будет
Anonymous Quiz
5%
"String"
11%
String
19%
false
46%
Ошибка компиляции
19%
true
#UI
Как практиковать UI разработку?
1) Редизайн готовых идей. Всегда можно изменить сайт, иконку или логотип уже известного проекта. Вы безусловно набьете себе руку, но и можете сделать свои ошибки привычкой, если не будете брать реальные таски.
2) Фриланс. Всегда можно взять задание с настоящего заказа для тренировки, но если у вас уже есть какие-то навыки и уверенность в себе, можете попробовать выполнить такой заказ всерьез. Также берите тестовые задания в рекрутеров.
e. g: https://ain.ua/2015/12/31/19-frilans-ploshhadok-dlya-dizajnerov-i-programmistov/
3) Большинство рекрутеров делают тестовые задания по уже готовым паттернам. Вам остается только анализировать сайты где эти паттерны форсируются.
e. g: https://jangol.org.ua/blog/2020/04/10/kak-sdelat-testovoe-zadanie-ux-ui-dizajneru-primery-i-10-sovetov/
Как практиковать UI разработку?
1) Редизайн готовых идей. Всегда можно изменить сайт, иконку или логотип уже известного проекта. Вы безусловно набьете себе руку, но и можете сделать свои ошибки привычкой, если не будете брать реальные таски.
2) Фриланс. Всегда можно взять задание с настоящего заказа для тренировки, но если у вас уже есть какие-то навыки и уверенность в себе, можете попробовать выполнить такой заказ всерьез. Также берите тестовые задания в рекрутеров.
e. g: https://ain.ua/2015/12/31/19-frilans-ploshhadok-dlya-dizajnerov-i-programmistov/
3) Большинство рекрутеров делают тестовые задания по уже готовым паттернам. Вам остается только анализировать сайты где эти паттерны форсируются.
e. g: https://jangol.org.ua/blog/2020/04/10/kak-sdelat-testovoe-zadanie-ux-ui-dizajneru-primery-i-10-sovetov/
AIN.UA
19 фриланс-площадок для дизайнеров и программистов
#Algorithms
Binary search algorithm
In computer science, binary search, also known as half-interval search, logarithmic search, or binary chop, is a search algorithm that finds the position of a target value within a sorted array. Binary search compares the target value to the middle element of the array. If they are not equal, the half in which the target cannot lie is eliminated and the search continues on the remaining half, again taking the middle element to compare to the target value, and repeating this until the target value is found. If the search ends with the remaining half being empty, the target is not in the array.
Binary search algorithm
In computer science, binary search, also known as half-interval search, logarithmic search, or binary chop, is a search algorithm that finds the position of a target value within a sorted array. Binary search compares the target value to the middle element of the array. If they are not equal, the half in which the target cannot lie is eliminated and the search continues on the remaining half, again taking the middle element to compare to the target value, and repeating this until the target value is found. If the search ends with the remaining half being empty, the target is not in the array.
#java
Классы-оболочки
Классы-оболочки Java являются Объектным представлением восьми примитивных типов в Java. Все классы-оболочки в Java являются неизменными и final. Начиная с Java 5 автоупаковка и распаковка позволяет легко конвертировать примитивные типы в их соответствующие классы-оболочки и наоборот.
Разработчиками языка Java было принято очень умное решение отделить примитивные типы и классы-оболочки, указав при этом следующее:
1) Используйте классы-обертки, когда работаете с коллекциями.
2) Используйте примитивные типы для того, чтобы ваши программы были максимально просты.
Классы-оболочки
Классы-оболочки Java являются Объектным представлением восьми примитивных типов в Java. Все классы-оболочки в Java являются неизменными и final. Начиная с Java 5 автоупаковка и распаковка позволяет легко конвертировать примитивные типы в их соответствующие классы-оболочки и наоборот.
Разработчиками языка Java было принято очень умное решение отделить примитивные типы и классы-оболочки, указав при этом следующее:
1) Используйте классы-обертки, когда работаете с коллекциями.
2) Используйте примитивные типы для того, чтобы ваши программы были максимально просты.
Результатом выполнения программы будет
Anonymous Quiz
26%
Compile-time error
11%
Hello
53%
Hello World
10%
Hello Hello World
#java
Коллекции [1/3]
Queue: наследует интерфейс Collection и представляет функционал для структур данных в виде очереди
Deque: наследует интерфейс Queue и представляет функционал для двунаправленных очередей
List: наследует интерфейс Collection и представляет функциональность простых списков
Set: также расширяет интерфейс Collection и используется для хранения множеств уникальных объектов
SortedSet: расширяет интерфейс Set для создания сортированных коллекций
NavigableSet: расширяет интерфейс SortedSet для создания коллекций, в которых можно осуществлять поиск по соответствию
Map: предназначен для созданий структур данных в виде словаря, где каждый элемент имеет определенный ключ и значение. В отличие от других интерфейсов коллекций не наследуется от интерфейса Collection
Коллекции [1/3]
Коллекции образуют стройную и логичную систему. Во-первых, в основе всех коллекций лежит применение того или иного интерфейса, который определяет базовый функционал. Среди этих интерфейсов можно выделить следующие:Collection: базовый интерфейс для всех коллекций и других интерфейсов коллекций
Queue: наследует интерфейс Collection и представляет функционал для структур данных в виде очереди
Deque: наследует интерфейс Queue и представляет функционал для двунаправленных очередей
List: наследует интерфейс Collection и представляет функциональность простых списков
Set: также расширяет интерфейс Collection и используется для хранения множеств уникальных объектов
SortedSet: расширяет интерфейс Set для создания сортированных коллекций
NavigableSet: расширяет интерфейс SortedSet для создания коллекций, в которых можно осуществлять поиск по соответствию
Map: предназначен для созданий структур данных в виде словаря, где каждый элемент имеет определенный ключ и значение. В отличие от других интерфейсов коллекций не наследуется от интерфейса Collection
#java
Коллекции [2/3]
AbstractList: расширяет класс AbstractCollection и применяет интерфейс List, предназначен для создания коллекций в виде списков
AbstractSet: расширяет класс AbstractCollection и применяет интерфейс Set для создания коллекций в виде множеств
AbstractQueue: расширяет класс AbstractCollection и применяет интерфейс Queue, предназначен для создания коллекций в виде очередей и стеков
AbstractSequentialList: также расширяет класс AbstractList и реализует интерфейс List. Используется для создания связанных списков
AbstractMap: применяет интерфейс Map, предназначен для создания наборов по типу словаря с объектами в виде пары "ключ-значение"
Коллекции [2/3]
Интерфейсы из 1/3 частично реализуются абстрактными классами:AbstractCollection: базовый абстрактный класс для других коллекций, который применяет интерфейс Collection
AbstractList: расширяет класс AbstractCollection и применяет интерфейс List, предназначен для создания коллекций в виде списков
AbstractSet: расширяет класс AbstractCollection и применяет интерфейс Set для создания коллекций в виде множеств
AbstractQueue: расширяет класс AbstractCollection и применяет интерфейс Queue, предназначен для создания коллекций в виде очередей и стеков
AbstractSequentialList: также расширяет класс AbstractList и реализует интерфейс List. Используется для создания связанных списков
AbstractMap: применяет интерфейс Map, предназначен для создания наборов по типу словаря с объектами в виде пары "ключ-значение"
#java
Коллекции [3/3]
LinkedList: представляет связанный список
ArrayDeque: класс двунаправленной очереди, в которой мы можем произвести вставку и удаление как в начале коллекции, так и в ее конце
HashSet: набор объектов или хеш-множество, где каждый элемент имеет ключ - уникальный хеш-код
TreeSet: набор отсортированных объектов в виде дерева
LinkedHashSet: связанное хеш-множество
PriorityQueue: очередь приоритетов
HashMap: структура данных в виде словаря, в котором каждый объект имеет уникальный ключ и некоторое значение
TreeMap: структура данных в виде дерева, где каждый элемент имеет уникальный ключ и некоторое значение
Коллекции [3/3]
С помощью применения вышеописанных интерфейсов и абстрактных классов в Java реализуется широкая палитра классов коллекций - списки, множества, очереди, отображения и другие, среди которых можно выделить следующие:ArrayList: простой список объектов
LinkedList: представляет связанный список
ArrayDeque: класс двунаправленной очереди, в которой мы можем произвести вставку и удаление как в начале коллекции, так и в ее конце
HashSet: набор объектов или хеш-множество, где каждый элемент имеет ключ - уникальный хеш-код
TreeSet: набор отсортированных объектов в виде дерева
LinkedHashSet: связанное хеш-множество
PriorityQueue: очередь приоритетов
HashMap: структура данных в виде словаря, в котором каждый объект имеет уникальный ключ и некоторое значение
TreeMap: структура данных в виде дерева, где каждый элемент имеет уникальный ключ и некоторое значение
Схематично всю систему коллекций вкратце можно представить следующим образом: