🔥 Постоянно тушишь пожары по причине неоптимально заложенных основ БД?
Онлайн курс «Базы данных» от OTUS поможет на практике освоить все необходимые навыки для профессиональной работы с реляционными и нереляционными базами данных: PostgreSQL, MySQL, Redis, MongoDB, Cassandra, NoSQL, Clickhouse
Будет полезно, если:
— вам пришлось учиться всему самим, есть «серые зоны» в каком-то из блоков, например работа с индексами или оптимизация БД
— ваш набор компетенций не складывается в единую и устойчивую модель работы с БД
Программу ведут профессионалы из таких компаний, как Wildberries, 1C-СТАРТ, X5 Group etc
На 2024 год по данным job-сайтов на рынке дефицит профессионалов, отвечающих возросшим требованиям работодателей
Ответьте на 20 вопросов и проверьте, насколько вам необходимо обучение на продвинутом курсе «Базы данных» от OTUS.
На курсе осталось всего 3 свободных места!
👉https://otus.pw/dERk/?erid=LjN8KSZ5e
Онлайн курс «Базы данных» от OTUS поможет на практике освоить все необходимые навыки для профессиональной работы с реляционными и нереляционными базами данных: PostgreSQL, MySQL, Redis, MongoDB, Cassandra, NoSQL, Clickhouse
Будет полезно, если:
— вам пришлось учиться всему самим, есть «серые зоны» в каком-то из блоков, например работа с индексами или оптимизация БД
— ваш набор компетенций не складывается в единую и устойчивую модель работы с БД
Программу ведут профессионалы из таких компаний, как Wildberries, 1C-СТАРТ, X5 Group etc
На 2024 год по данным job-сайтов на рынке дефицит профессионалов, отвечающих возросшим требованиям работодателей
Ответьте на 20 вопросов и проверьте, насколько вам необходимо обучение на продвинутом курсе «Базы данных» от OTUS.
На курсе осталось всего 3 свободных места!
👉https://otus.pw/dERk/?erid=LjN8KSZ5e
👍8❤3🔥2🎅1
LambdaMetafactory
LambdaMetafactory — это класс в Java, который используется для создания объектов функциональных интерфейсов.
Как работает LambdaMetafactory:
1. LambdaMetafactory используется для создания CallSite, который представляет собой фабричный метод, возвращающий обработчик целевого метода.
2. Обработчик метода — это реализация функционального интерфейса, которая использует invokeExact для вызова целевого метода.
3. Если в лямбда-выражении есть захваченные переменные, то invokeExact принимает эти переменные как фактические параметры.
4. В Oracle JRE 8 metafactory динамически генерирует Java-класс, используя ObjectWeb Asm, который и создает класс-реализацию функционального интерфейса.
LambdaMetafactory — это класс в Java, который используется для создания объектов функциональных интерфейсов.
Как работает LambdaMetafactory:
1. LambdaMetafactory используется для создания CallSite, который представляет собой фабричный метод, возвращающий обработчик целевого метода.
2. Обработчик метода — это реализация функционального интерфейса, которая использует invokeExact для вызова целевого метода.
3. Если в лямбда-выражении есть захваченные переменные, то invokeExact принимает эти переменные как фактические параметры.
4. В Oracle JRE 8 metafactory динамически генерирует Java-класс, используя ObjectWeb Asm, который и создает класс-реализацию функционального интерфейса.
👍16🔥4❤2
System.arraycopy
System.arraycopy используется для копирования элементов из одного массива в другой. Этот метод предоставляет эффективный способ копирования данных между массивами. Синтаксис System.arraycopy:
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Параметры метода включают:
src: Исходный массив, из которого вы хотите скопировать элементы.
srcPos: Начальная позиция в исходном массиве, с которой начнется копирование.
dest: Целевой массив, в который вы хотите скопировать элементы.
destPos: Начальная позиция в целевом массиве, куда будут скопированы элементы.
length: Количество элементов, которое вы хотите скопировать.
System.arraycopy используется для копирования элементов из одного массива в другой. Этот метод предоставляет эффективный способ копирования данных между массивами. Синтаксис System.arraycopy:
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Параметры метода включают:
src: Исходный массив, из которого вы хотите скопировать элементы.
srcPos: Начальная позиция в исходном массиве, с которой начнется копирование.
dest: Целевой массив, в который вы хотите скопировать элементы.
destPos: Начальная позиция в целевом массиве, куда будут скопированы элементы.
length: Количество элементов, которое вы хотите скопировать.
❤16👍10🔥2🎉1🎅1
3, 2 … Остановимся здесь.⤵️
Потому что 2 недель достаточно, чтобы познакомиться с основами Java и понять, подходит ли вам это направление.
Не обещаем, что будет легко, но интересно, полезно и недорого (всего 990 рублей!) – гарантируем.
Расклад такой: мы даем вам базу — больше 60 уроков, вебинары, лайвкодинг, а вы пишете собственную программу.
Если переживаете — не переживайте :) Рядом всегда будет наставник, готовый ответить на любой ваш вопрос.
⏰ Старт курса уже 6 марта, присоединяйтесь!
Потому что 2 недель достаточно, чтобы познакомиться с основами Java и понять, подходит ли вам это направление.
Не обещаем, что будет легко, но интересно, полезно и недорого (всего 990 рублей!) – гарантируем.
Расклад такой: мы даем вам базу — больше 60 уроков, вебинары, лайвкодинг, а вы пишете собственную программу.
Если переживаете — не переживайте :) Рядом всегда будет наставник, готовый ответить на любой ваш вопрос.
⏰ Старт курса уже 6 марта, присоединяйтесь!
👍5❤2🔥1
Из-за наличия JIT-компиляции в «классических» JVM пиковая производительность приложений достигается не мгновенно при запуске, а в продолжительном процессе сбора профиля текущего исполнения и компиляции кода, который может занимать секунды, минуты, а иногда и часы. В некоторых задачах (например, алгоритмической торговли на бирже), долгое время старта и прогрева приложения может быть критическим фактором, который нужно минимизировать.
Для решения этой проблемы существует несколько подходов: ручной прогрев, AOT-компиляция, переиспользование существующего JIT-профиля, новая технология Coordinated Restore at Checkpoint.
В докладе рассматриваем проблематику прогрева JVM-приложений и способы мониторинга JIT-компиляций на конкретных примерах. Разбираем существующие подходы, достоинства, недостатки и особенности каждого из методов.
Этот доклад будет интересен всем, кто интересуется быстрым запуском и прогревом JVM-приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Александр Ланцов — Прогревая JVM: CRaC и другие фокусы
Подробнее о Java-конференциях:
— весной — JPoint: https://jrg.su/gTrwHx
— осенью — Joker: https://jrg.su/h7yvG4
— —
Из-за наличия JIT-компиляции в «классических» JVM пиковая производительность приложений достигается не мгновенно при запуске, а в продолжительном…
— весной — JPoint: https://jrg.su/gTrwHx
— осенью — Joker: https://jrg.su/h7yvG4
— —
Из-за наличия JIT-компиляции в «классических» JVM пиковая производительность приложений достигается не мгновенно при запуске, а в продолжительном…
👍5❤4🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Виртуальные потоки в Java
В данном видео мы рассматриваем основы виртуальных потоков в Java.
Дружное сообщество:
https://t.me/pse_club
Материалы для разработчиков:
https://proselyte.net/
Ссылка на GitHub:
https://github.com/proselytear/virtualthreads
JEP444:
https://openjdk.org/jeps/444…
Дружное сообщество:
https://t.me/pse_club
Материалы для разработчиков:
https://proselyte.net/
Ссылка на GitHub:
https://github.com/proselytear/virtualthreads
JEP444:
https://openjdk.org/jeps/444…
👍20❤6😁3
Девять шаблонов проектирования ПО, которые вы должны знать!
Освойте их на бесплатном практическом уроке от OTUS и Андрея Полякова — старшего разработчика в Unlimint.
✅После вебинара вы сможете:
– понимать основные принципы и концепции, лежащие в основе шаблонов GRASP;
– оценивать и выбирать наиболее подходящие шаблоны для конкретных проектов;
– разрабатывать архитектуры, основанные на принципах GRASP, что позволит создавать более качественное и надежное ПО.
Занятие пройдёт 29 февраля в 20:00 мск в рамках курса «Архитектура и шаблоны проектирования». Доступна рассрочка на обучение!
➡️ Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и познакомиться с форматом обучения: пройти тест
Освойте их на бесплатном практическом уроке от OTUS и Андрея Полякова — старшего разработчика в Unlimint.
✅После вебинара вы сможете:
– понимать основные принципы и концепции, лежащие в основе шаблонов GRASP;
– оценивать и выбирать наиболее подходящие шаблоны для конкретных проектов;
– разрабатывать архитектуры, основанные на принципах GRASP, что позволит создавать более качественное и надежное ПО.
Занятие пройдёт 29 февраля в 20:00 мск в рамках курса «Архитектура и шаблоны проектирования». Доступна рассрочка на обучение!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4
Почему Map не наследуется от Collection?
Это связано с различиями в их целях и использовании. Интерфейс Collection представляет собой общие методы для работы с группой объектов, таких как добавление, удаление и проверка наличия элемента. Он ориентирован на работу с коллекциями объектов, где каждый объект является элементом коллекции.
Интерфейс Map, с другой стороны, представляет собой отображение ключей на значения. Он не рассматривает элементы коллекции как отдельные объекты, а предоставляет доступ к значению, связанному с определенным ключом. Это более общий и мощный подход, который не сводится к работе с отдельными элементами коллекции.
Интерфейс Map включает в себя методы для управления парами ключ-значение и обеспечивает эффективный доступ к значениям по ключу. По этим причинам он не является подтипом Collection. Однако, классы, реализующие интерфейс Map, часто предоставляют методы, которые позволяют работать с элементами коллекции или возвращают представление коллекции ключей, значений или записей (ключ-значение).
Таким образом, хотя Map и Collection предоставляют абстракции для работы с группой объектов, они решают разные задачи, и поэтому не существует иерархического отношения наследования между ними.
Это связано с различиями в их целях и использовании. Интерфейс Collection представляет собой общие методы для работы с группой объектов, таких как добавление, удаление и проверка наличия элемента. Он ориентирован на работу с коллекциями объектов, где каждый объект является элементом коллекции.
Интерфейс Map, с другой стороны, представляет собой отображение ключей на значения. Он не рассматривает элементы коллекции как отдельные объекты, а предоставляет доступ к значению, связанному с определенным ключом. Это более общий и мощный подход, который не сводится к работе с отдельными элементами коллекции.
Интерфейс Map включает в себя методы для управления парами ключ-значение и обеспечивает эффективный доступ к значениям по ключу. По этим причинам он не является подтипом Collection. Однако, классы, реализующие интерфейс Map, часто предоставляют методы, которые позволяют работать с элементами коллекции или возвращают представление коллекции ключей, значений или записей (ключ-значение).
Таким образом, хотя Map и Collection предоставляют абстракции для работы с группой объектов, они решают разные задачи, и поэтому не существует иерархического отношения наследования между ними.
👍24❤4🔥4
29 февраля 12:00 МСК
Вебинар «Надежное облако для команды разработки: как увеличить маржинальность проектов»
❓ Как облачные технологии могут стать одним из дополнительных источников заработка для команды разработки
❓ Как вы можете повысить маржинальность проектов ваших клиентов, расположив их в облаке ITGLOBAL.COM
Приглашаем разработчиков приложений, сервисов, сложных AI-проектов на вебинар, посвященный размещению проектов разработки в облачной инфраструктуре.
Вебинар будет полезен вам, если:
🔹 вы реализуете проекты по разработке;
🔹 вам требуются свободные ресурсы для тестирования и запусков;
🔹 вы хотите сократить time-to-market ваших проектов;
🔹 вам требуются мощные ресурсы для работы с AI, HPC и графикой;
🔹 вам важно снизить издержки на инфраструктуру для разработки и production.
🔗 Регистрация
Вебинар «Надежное облако для команды разработки: как увеличить маржинальность проектов»
❓ Как облачные технологии могут стать одним из дополнительных источников заработка для команды разработки
❓ Как вы можете повысить маржинальность проектов ваших клиентов, расположив их в облаке ITGLOBAL.COM
Приглашаем разработчиков приложений, сервисов, сложных AI-проектов на вебинар, посвященный размещению проектов разработки в облачной инфраструктуре.
Вебинар будет полезен вам, если:
🔹 вы реализуете проекты по разработке;
🔹 вам требуются свободные ресурсы для тестирования и запусков;
🔹 вы хотите сократить time-to-market ваших проектов;
🔹 вам требуются мощные ресурсы для работы с AI, HPC и графикой;
🔹 вам важно снизить издержки на инфраструктуру для разработки и production.
🔗 Регистрация
❤7👍3
Спикер расскажет о кейсе, с которым его команда столкнулась при решении проблем промышленной эксплуатации высоконагруженной системы. Причиной проблем и главной темой доклада стало применение нативных функций.
Роман попробует развеять миф о том, что в Java не надо следить за памятью. Выясним, что не вся память, используемая Java, во власти GC.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Роман Таранов (Сбер) — Темная сторона Java
Подробнее о Java-конференциях:
— весной — JPoint: https://jrg.su/gTrwHx
— осенью — Joker: https://jrg.su/h7yvG4
— —
Спикер расскажет о кейсе, с которым его команда столкнулась при решении проблем промышленной эксплуатации высоконагруженной системы. Причиной…
— весной — JPoint: https://jrg.su/gTrwHx
— осенью — Joker: https://jrg.su/h7yvG4
— —
Спикер расскажет о кейсе, с которым его команда столкнулась при решении проблем промышленной эксплуатации высоконагруженной системы. Причиной…
👍10🔥5❤1😁1
На курсе все максимально строго:
- Курс рассчитан на профессионалов с практическим опытом работы на Java.
- Мы будем 5 месяцев погружать вас в теорию и практику Spring Framework.
- Дадим 18 практических работ. ❗️Процесс review сдаваемой работы максимально приближен к тому, каким он мог быть на реальном проекте.
- Помимо этого, мы попросим вас сдать дипломную работу. Хотите узнать какие требования к ней (p.s. и чем она будет вам полезна)?
Кстати, это отличный шанс проверить свои знания!
Пройти тест
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥2
Что такое механизм try-with-resources?
Данная конструкция, которая появилась в Java 7, позволяет использовать блок try-catch не заботясь о закрытии ресурсов, используемых в данном сегменте кода. Ресурсы объявляются в скобках сразу после try, а компилятор уже сам неявно создаёт секцию finally, в которой и происходит освобождение занятых в блоке ресурсов. Под ресурсами подразумеваются сущности, реализующие интерфейс java.lang.Autocloseable.
Стоит заметить, что блоки catch и явный finally выполняются уже после того, как закрываются ресурсы в неявном finally.
Данная конструкция, которая появилась в Java 7, позволяет использовать блок try-catch не заботясь о закрытии ресурсов, используемых в данном сегменте кода. Ресурсы объявляются в скобках сразу после try, а компилятор уже сам неявно создаёт секцию finally, в которой и происходит освобождение занятых в блоке ресурсов. Под ресурсами подразумеваются сущности, реализующие интерфейс java.lang.Autocloseable.
Стоит заметить, что блоки catch и явный finally выполняются уже после того, как закрываются ресурсы в неявном finally.
🎉17👍7🔥5❤1
👁🗨 Как делать профилирование с помощью VisualVM в Java?
Расскажет Александр Царев — Tech Lead в Сбере и кандидат технических наук.
Встречаемся на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:
- вспомните, что такое дамп потоков и как его получить;
- узнаете разницу между профилированием и семплированием и как их проводить с помощью инструмента VisualVM;
- разберете результаты семплирования, чтобы понять, как по ним находить узкие места в производительности.
📢 📢 Занятие пройдёт 6 марта в 20:00 мск и будет приурочено к старту курса «Java Developer. Advanced».
Доступна рассрочка на обучение!
➡️ Пройдите короткий тест прямо сейчас, чтобы занять место на открытом уроке и получить запись: https://otus.pw/jdvk/
Расскажет Александр Царев — Tech Lead в Сбере и кандидат технических наук.
Встречаемся на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:
- вспомните, что такое дамп потоков и как его получить;
- узнаете разницу между профилированием и семплированием и как их проводить с помощью инструмента VisualVM;
- разберете результаты семплирования, чтобы понять, как по ним находить узкие места в производительности.
Доступна рассрочка на обучение!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🔥3
Самоподписанные сертификаты - создание и использование
В данном ролике автор рассмотрит создание самоподписанных сертификатов при помощи консольной утилиты OpenSSL.
В данном ролике автор рассмотрит создание самоподписанных сертификатов при помощи консольной утилиты OpenSSL.
YouTube
Самоподписанные сертификаты - создание и использование
В данном ролике я рассмотрю создание самоподписанных сертификатов при помощи консольной утилиты OpenSSL.
Статья на сайте: https://alexkosarev.name/2023/04/13/self-signed-certificates/
Статья в VK: https://vk.com/@shurik_kodit-samopodpisannye-sertifikaty…
Статья на сайте: https://alexkosarev.name/2023/04/13/self-signed-certificates/
Статья в VK: https://vk.com/@shurik_kodit-samopodpisannye-sertifikaty…
❤12👍1
☕️Освойте ключевой навык разработчика на Java
Всего за пару часов на бесплатном практическом уроке «Дебаггинг приложений на Java» от OTUS.
На вебинаре:
✅ Поговорим про выполнение Java-кода в самой популярной среде разработки;
✅ Узнаем, как выполнять дебаггинг и как находить баги с помощью дебаггинга;
✅ Ответим на все возникающие вопросы.
Встречаемся 5 марта в 20:00 мск в рамках курса «Специализация Java-разработчик». Доступна рассрочка на обучение!
Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cv2UJy
Всего за пару часов на бесплатном практическом уроке «Дебаггинг приложений на Java» от OTUS.
На вебинаре:
✅ Поговорим про выполнение Java-кода в самой популярной среде разработки;
✅ Узнаем, как выполнять дебаггинг и как находить баги с помощью дебаггинга;
✅ Ответим на все возникающие вопросы.
Встречаемся 5 марта в 20:00 мск в рамках курса «Специализация Java-разработчик». Доступна рассрочка на обучение!
Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cv2UJy
❤5👍2🔥2
Метод newSingleThreadExecutor()
Метод newSingleThreadExecutor() используется для создания ExecutorService с единственным рабочим потоком. ExecutorService предоставляет удобный способ управления выполнением задач в асинхронном режиме.
В примере выше создается ExecutorService с одним рабочим потоком, и две задачи (task1 и task2) передаются на выполнение с использованием метода submit(). Закрытие ExecutorService выполняется с помощью метода shutdown(), который гарантирует, что больше никакие задачи не будут приняты, и потоки будут завершены после завершения всех текущих задач.
Метод newSingleThreadExecutor() используется для создания ExecutorService с единственным рабочим потоком. ExecutorService предоставляет удобный способ управления выполнением задач в асинхронном режиме.
В примере выше создается ExecutorService с одним рабочим потоком, и две задачи (task1 и task2) передаются на выполнение с использованием метода submit(). Закрытие ExecutorService выполняется с помощью метода shutdown(), который гарантирует, что больше никакие задачи не будут приняты, и потоки будут завершены после завершения всех текущих задач.
👍16❤3🔥2
Проект DevOps с полной автоматизацией, который может помочь настроить CICD -конвейер с полной автоматизацией.
Language: Java
💥Stars: 18
📝Forks: 521
https://github.com/cvamsikrishna11/devops-fully-automated
Language: Java
💥Stars: 18
📝Forks: 521
https://github.com/cvamsikrishna11/devops-fully-automated
GitHub
GitHub - cvamsikrishna11/devops-fully-automated: A DevOps project with fully automation, which can help the learners and experienced…
A DevOps project with fully automation, which can help the learners and experienced people to setup the CICD pipeline with full automation. - cvamsikrishna11/devops-fully-automated
🔥13❤4
Поговорим про деньги в IT?
Приглашаем опытных IT-специалистов пройти небольшой опрос про зарплаты и бенефиты в технологических компаниях. Это займёт не более 7 минут — а ваше мнение поможет одному крупному российскому работодателю делать актуальные офферы.
Пройти опрос можно здесь
Приглашаем опытных IT-специалистов пройти небольшой опрос про зарплаты и бенефиты в технологических компаниях. Это займёт не более 7 минут — а ваше мнение поможет одному крупному российскому работодателю делать актуальные офферы.
Пройти опрос можно здесь
👍4❤3