Media is too big
VIEW IN TELEGRAM
Java. Префиксное дерево. Основные операции, сохранение в файл, практическое применение.
В данном видео я рассказываю о префиксных деревьях. Разбираем, что из себя представляет префиксное дерево, для чего оно применяется. Изучаем и реализуем основные операции с префиксным деревом на языке программирования Java. Кроме этого я показываю как сохранить дерево в файл и потом загрузить обратно. С помощью этого проверяю, насколько выгодней может быть хранение строк в префиксном дереве на примере автомобильных номеров.
00:00 - Вступление
00:26 - Применение в приложении
01:58 - Построение дерева и операции с ним
06:33 - Построение префиксного дерева на Java
11:22 - Операции с префиксным деревом на Java
16:31 - Сохранение дерева в файл
20:51 - Загрузка дерева из файла
25:32 - Экономия по сравнению со списком
27:12 - Замечание о Null-безопасности
28:26 - Заключение
источник
👉@BookJava
В данном видео я рассказываю о префиксных деревьях. Разбираем, что из себя представляет префиксное дерево, для чего оно применяется. Изучаем и реализуем основные операции с префиксным деревом на языке программирования Java. Кроме этого я показываю как сохранить дерево в файл и потом загрузить обратно. С помощью этого проверяю, насколько выгодней может быть хранение строк в префиксном дереве на примере автомобильных номеров.
00:00 - Вступление
00:26 - Применение в приложении
01:58 - Построение дерева и операции с ним
06:33 - Построение префиксного дерева на Java
11:22 - Операции с префиксным деревом на Java
16:31 - Сохранение дерева в файл
20:51 - Загрузка дерева из файла
25:32 - Экономия по сравнению со списком
27:12 - Замечание о Null-безопасности
28:26 - Заключение
источник
👉@BookJava
👍2
📕Открытый урок по Scala для Java, C#, Kotlin и Android программистов, аналитиков данных и специалистов по обработке больших данных
На открытом уроке 23 декабря в 20:00 мск мы изучим основы языка Scala, его особенности и практику применения.
📗На уроке:
- Разберем синтаксические особенности языка;
- Узнаем какие возможности языка позволяют комфортно использовать подходы функционального программирования
📘В результате:
- Пройдем практику в написании функций и методов
- Научимся создавать иммутабельные конструкции
- Получим полное представление о возможностях композиции
Спикер Алексей Воронец — руководитель разработки департамента проектных решений и поисковых систем в компании Naumen, 14+ лет разработки на Scala, Java, JavaScript и PHP.
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cGjzJy
📙 Все участники открытого урока получат скидку 20% на курс "Scala-разработчик" с промокодом SCALA2025
На открытом уроке 23 декабря в 20:00 мск мы изучим основы языка Scala, его особенности и практику применения.
📗На уроке:
- Разберем синтаксические особенности языка;
- Узнаем какие возможности языка позволяют комфортно использовать подходы функционального программирования
📘В результате:
- Пройдем практику в написании функций и методов
- Научимся создавать иммутабельные конструкции
- Получим полное представление о возможностях композиции
Спикер Алексей Воронец — руководитель разработки департамента проектных решений и поисковых систем в компании Naumen, 14+ лет разработки на Scala, Java, JavaScript и PHP.
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cGjzJy
📙 Все участники открытого урока получат скидку 20% на курс "Scala-разработчик" с промокодом SCALA2025
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Пишем игру на Java - Клон Танков. Часть 1
Вступление
Создаем Окно - [1]
Да будет цвет - [2]
Изображения (теория) - [3]
Улучшаем графику - [4]
Мульти Буферизацыя - [5]
👉@BookJava
Вступление
Создаем Окно - [1]
Да будет цвет - [2]
Изображения (теория) - [3]
Улучшаем графику - [4]
Мульти Буферизацыя - [5]
👉@BookJava
👍5❤1
Опишите поведение аннотации
1. Контейнер определяет тип объекта для внедрения
2. Контейнер ищет бины в контексте(он же контейнер), которые соответствуют нужному типу
3. Если есть несколько кандидатов, и один из них помечен как
4. Если используется аннотации
5. В противном случае контейнер попытается внедрить компонент, основываясь на его имени или ID
6. Если ни один из способов не сработал, то будет выброшено исключение
Контейнер обрабатывает DI с помощью
Если внедряемый объект массив, коллекция, или map с дженериком, то Spring внедрит все бины подходящие по типу в этот массив(или другую структуру данных). В случае с map ключом будет имя бина.
//параметр указывает, требуется ли DI
👉@BookJava
@Autowired
1. Контейнер определяет тип объекта для внедрения
2. Контейнер ищет бины в контексте(он же контейнер), которые соответствуют нужному типу
3. Если есть несколько кандидатов, и один из них помечен как
@Primary
, то внедряется он4. Если используется аннотации
@Autowire + Qualifier
, то контейнер будет использовать информацию из @Qualifier
, чтобы понять, какой компонент внедрять5. В противном случае контейнер попытается внедрить компонент, основываясь на его имени или ID
6. Если ни один из способов не сработал, то будет выброшено исключение
Контейнер обрабатывает DI с помощью
AutowiredAnnotationBeanPostProcessor
. В связи с этим, аннотация не может быть использована ни в одном BeanFactoryPP
или BeanPP
.Если внедряемый объект массив, коллекция, или map с дженериком, то Spring внедрит все бины подходящие по типу в этот массив(или другую структуру данных). В случае с map ключом будет имя бина.
//параметр указывает, требуется ли DI
@Authowired(required = true/false
)👉@BookJava
👍5
Хватит разворачивать приложения наугад! Docker — must-have инструмент для современных Java-разработчиков.
🔍 На открытом уроке разберем, как контейнеризация упрощает разработку и развертывание приложений. Узнаете всё: от создания Docker-контейнеров до профилирования.
👉 Запускайте Java-приложения в облаке, тестируйте их под нагрузкой, отлаживайте с точностью хирурга. Начните путь к новой профессиональной высоте!
🗓 Запишитесь на урок «Контейнеризация Java-приложений с Docker» 27 декабря в 20:00 уже сейчас! Участникам — скидки на курс «Java Developer. Advanced»: https://vk.cc/cGl6vp
🔍 На открытом уроке разберем, как контейнеризация упрощает разработку и развертывание приложений. Узнаете всё: от создания Docker-контейнеров до профилирования.
👉 Запускайте Java-приложения в облаке, тестируйте их под нагрузкой, отлаживайте с точностью хирурга. Начните путь к новой профессиональной высоте!
🗓 Запишитесь на урок «Контейнеризация Java-приложений с Docker» 27 декабря в 20:00 уже сейчас! Участникам — скидки на курс «Java Developer. Advanced»: https://vk.cc/cGl6vp
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Пишем игру на Java - Клон Танков. Часть 2
Структура игры - [6]
Ввод с клавиатуры - [7]
Загружаем ресурсы из файла - [8]
Создаем Спрайт - [9]
Класс Player и Entity - [10]
Создаем Уровень - [11]
👉@BookJava
Структура игры - [6]
Ввод с клавиатуры - [7]
Загружаем ресурсы из файла - [8]
Создаем Спрайт - [9]
Класс Player и Entity - [10]
Создаем Уровень - [11]
👉@BookJava
👍6❤1
Media is too big
VIEW IN TELEGRAM
Пишем RestApi на SpringBoot Java + MySQL
Spring Initializr 00:00
IntellijIdea 01:34
GetMapping 04:28
Class 06:09
API Layer 08:47
PostMapping 11:20
Подключаем MySQL 13:46
Configuration 19:41
Extra Fields 21:57
DeleteMapping 23:22
PutMapping 26:37
Почти готово 31:42
Обработка исключений 31:59
Унифицируем Response 39:56
источник
👉@BookJava
Spring Initializr 00:00
IntellijIdea 01:34
GetMapping 04:28
Class 06:09
API Layer 08:47
PostMapping 11:20
Подключаем MySQL 13:46
Configuration 19:41
Extra Fields 21:57
DeleteMapping 23:22
PutMapping 26:37
Почти готово 31:42
Обработка исключений 31:59
Унифицируем Response 39:56
источник
👉@BookJava
👍5
Совет 🚀 Spring Retry 🚀
Spring Retry предлагает возможность автоматического повторного выполнения неудачной операции. 🔥
https://github.com/spring-projects/spring-retry
👉@BookJava
Spring Retry предлагает возможность автоматического повторного выполнения неудачной операции. 🔥
https://github.com/spring-projects/spring-retry
👉@BookJava
👍4
Вы получите практику на живых проектах, разберетесь в реляционных базах данных, веб-приложениях и серверной разработке. Программа составлена так, чтобы уже по завершении курса вы могли претендовать на роль Middle Java Developer!
🎙 Ведущие эксперты индустрии помогут вам освоить полный стек инструментов — от Spring Framework до Docker и Kubernetes.
Обучение от OTUS ценят крупные IT-компании, а диплом открывает двери к лучшим предложениям на рынке.
Последний шанс успеть в группу!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1🎉1
Почему char[] предпочтительнее String для хранения пароля?
С момента создания строка остаётся в пуле, до тех пор, пока не будет удалена сборщиком мусора. Поэтому, даже после окончания использования пароля, он некоторое время продолжает оставаться доступным в памяти и способа избежать этого не существует. Это представляет определённый риск для безопасности, поскольку кто-либо, имеющий доступ к памяти сможет найти пароль в виде текста. В случае использования массива символов для хранения пароля имеется возможность очистить его сразу по окончанию работы с паролем, позволяя избежать риска безопасности, свойственного строке.
👉@BookJava
С момента создания строка остаётся в пуле, до тех пор, пока не будет удалена сборщиком мусора. Поэтому, даже после окончания использования пароля, он некоторое время продолжает оставаться доступным в памяти и способа избежать этого не существует. Это представляет определённый риск для безопасности, поскольку кто-либо, имеющий доступ к памяти сможет найти пароль в виде текста. В случае использования массива символов для хранения пароля имеется возможность очистить его сразу по окончанию работы с паролем, позволяя избежать риска безопасности, свойственного строке.
👉@BookJava
👍6🤔2🤮1
Как написать синглтон?
Singleton – это паттерн проектирования «одиночка», класс с единственным экземпляром. Такая пространная формулировка открывает простор для подходов к реализации, а значит и для уточняющих вопросов, на которые и рассчитывает интервьюер.
Первое что надо выяснить – единственный экземпляр в рамках чего. В базовом случае уникальность объекта обеспечивается на уровне реализации класса. Но при этом базовом подходе создается по объекту на каждый класслоадер. Для уникальности на всю виртуальную машину реализацию нужно дополнить. Понадобится больше действий уже на уровне ОС чтобы добиться единого экземпляра между процессами JVM. С другой стороны, может требоваться специфичное для фреймворка сужение «области уникальности», например по экземпляру на каждый Spring IoC-контейнер.
Затем вы узнаете, должен ли быть ровно один экземпляр, или не больше одного. Проще говоря, должно ли его создание быть ленивым. Возможно время использования объекта ограничено внешними условиями, и позднее он должен быть утилизирован.
И наконец нужно уточнить, в каких обстоятельствах подразумевается его использовать. Обычно предлагают условие многопоточной среды – инстанцирование необходимо синхронизировать. Другое возможное требование – сохранение состояния от запуска к запуску. Спектр опций здесь ограничивается только фантазией собеседующего.
О вариантах конкретных реализаций написано много статей. Обычно на интервью ожидается знание самых стандартных подходов, которые описаны например здесь.
👉@BookJava
Singleton – это паттерн проектирования «одиночка», класс с единственным экземпляром. Такая пространная формулировка открывает простор для подходов к реализации, а значит и для уточняющих вопросов, на которые и рассчитывает интервьюер.
Первое что надо выяснить – единственный экземпляр в рамках чего. В базовом случае уникальность объекта обеспечивается на уровне реализации класса. Но при этом базовом подходе создается по объекту на каждый класслоадер. Для уникальности на всю виртуальную машину реализацию нужно дополнить. Понадобится больше действий уже на уровне ОС чтобы добиться единого экземпляра между процессами JVM. С другой стороны, может требоваться специфичное для фреймворка сужение «области уникальности», например по экземпляру на каждый Spring IoC-контейнер.
Затем вы узнаете, должен ли быть ровно один экземпляр, или не больше одного. Проще говоря, должно ли его создание быть ленивым. Возможно время использования объекта ограничено внешними условиями, и позднее он должен быть утилизирован.
И наконец нужно уточнить, в каких обстоятельствах подразумевается его использовать. Обычно предлагают условие многопоточной среды – инстанцирование необходимо синхронизировать. Другое возможное требование – сохранение состояния от запуска к запуску. Спектр опций здесь ограничивается только фантазией собеседующего.
О вариантах конкретных реализаций написано много статей. Обычно на интервью ожидается знание самых стандартных подходов, которые описаны например здесь.
👉@BookJava
Telegram
Библиотека Java разработчика
Зачем нужен загрузчик классов?
В Java используется динамическая загрузка классов. Ее выполняют загрузчики – наследники абстрактного класса ClassLoader. Кроме того, они же загружают и файлы-ресурсы.
Загрузка класса (точнее любого ссылочного типа) и всех…
В Java используется динамическая загрузка классов. Ее выполняют загрузчики – наследники абстрактного класса ClassLoader. Кроме того, они же загружают и файлы-ресурсы.
Загрузка класса (точнее любого ссылочного типа) и всех…
👍2