❓Хотите создавать масштабируемую и отказоустойчивую микросервисную архитектуру?
19 ноября в 20:00 мск приглашаем на открытый вебинар, где вы узнаете, как применять ключевые стратегии Circuit Breaker, Retry и Load Balancing для повышения стабильности систем.
В современном мире сбоев и перегрузок не избежать. Но с правильными паттернами они не будут вас пугать. Мы разберем на практике, как защитить приложения от краха и обеспечить их стабильную работу даже при высокой нагрузке.
👨💻🛠👨🏻💻 Вебинар будет полезен разработчикам, архитекторам и DevOps-инженерам, которые хотят повысить производительность своих микросервисов, внедрив современные решения для автоматического масштабирования и балансировки.
🔴 Регистрируйтесь прямо сейчас и получите скидку на курс «Software Architect»: https://vk.cc/cEUIT6
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
19 ноября в 20:00 мск приглашаем на открытый вебинар, где вы узнаете, как применять ключевые стратегии Circuit Breaker, Retry и Load Balancing для повышения стабильности систем.
В современном мире сбоев и перегрузок не избежать. Но с правильными паттернами они не будут вас пугать. Мы разберем на практике, как защитить приложения от краха и обеспечить их стабильную работу даже при высокой нагрузке.
👨💻🛠👨🏻💻 Вебинар будет полезен разработчикам, архитекторам и DevOps-инженерам, которые хотят повысить производительность своих микросервисов, внедрив современные решения для автоматического масштабирования и балансировки.
🔴 Регистрируйтесь прямо сейчас и получите скидку на курс «Software Architect»: https://vk.cc/cEUIT6
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🔥4👍2
👍8❤5🔥3🥰1🥱1
Уже завтра собеседование на Middle Java с разработчиком из МТС
20 ноября (уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
1. Мария Ядерцова ведущий Java-разработчик в МТС Диджитал и ex. Сбербанк-Технологии будет задавать реальные вопросы и задачи разработчику-добровольцу
2. Мария будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
3. В конце можно будет задать любой вопрос Марии
Что узнаешь на прямом эфире от ШОРТКАТ:
• Чего ждут от кандидатов на Middle позиции в Java-разработке
• Какие вопросы задают на интервью и зачем
• Как подготовиться к собесу, чтобы получить оффер
Это бесплатно? Бесплатно
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqwsAcGe
20 ноября (уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
1. Мария Ядерцова ведущий Java-разработчик в МТС Диджитал и ex. Сбербанк-Технологии будет задавать реальные вопросы и задачи разработчику-добровольцу
2. Мария будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
3. В конце можно будет задать любой вопрос Марии
Что узнаешь на прямом эфире от ШОРТКАТ:
• Чего ждут от кандидатов на Middle позиции в Java-разработке
• Какие вопросы задают на интервью и зачем
• Как подготовиться к собесу, чтобы получить оффер
Это бесплатно? Бесплатно
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqwsAcGe
❤6👍3🔥3
Как реализовать двусторонний обмен данными между потоками?
Вопрос, который зачастую дается в виде практической задачи. Конечно, результата можно добиться разными способами: парой атомарных переменных, критическими секциями, потокобезопасными коллекциями. Но полезно знать, что специально для этого случая в стандартной библиотеке java.util.concurrent есть простой класс Exchanger.
Класс содержит единственный метод V exchange(V x). Один поток передает в него данные, и встает в ожидание. Ожидание завершается, когда второй поток также приходит в метод exchange со своей порцией информации. В качестве результата вызова потоки получают данные друг друга.
На основе класса Exchanger удобно создавать пайплайны обработки данных. Первый поток выполняет свою часть обработки, и складывает результаты в буфер. В качестве буфера может работать любой многоразовый объект-контейнер. Когда он заполняется, следующий поток обменивает его на второй, пустой буфер. Таким образом два буфера используются поочередно, не выделяется лишний раз память и не нагружается GC. Далее из попарно обменивающихся буферами потоков может строиться длинная многопоточная цепочка обработки.
@javatasks #java
Вопрос, который зачастую дается в виде практической задачи. Конечно, результата можно добиться разными способами: парой атомарных переменных, критическими секциями, потокобезопасными коллекциями. Но полезно знать, что специально для этого случая в стандартной библиотеке java.util.concurrent есть простой класс Exchanger.
Класс содержит единственный метод V exchange(V x). Один поток передает в него данные, и встает в ожидание. Ожидание завершается, когда второй поток также приходит в метод exchange со своей порцией информации. В качестве результата вызова потоки получают данные друг друга.
На основе класса Exchanger удобно создавать пайплайны обработки данных. Первый поток выполняет свою часть обработки, и складывает результаты в буфер. В качестве буфера может работать любой многоразовый объект-контейнер. Когда он заполняется, следующий поток обменивает его на второй, пустой буфер. Таким образом два буфера используются поочередно, не выделяется лишний раз память и не нагружается GC. Далее из попарно обменивающихся буферами потоков может строиться длинная многопоточная цепочка обработки.
@javatasks #java
2👍14🔥5❤1
Разработчик бэкенда на Java в Вертикали в Яндекс
Вертикали — это бизнес-юнит Яндекса, в который входят несколько крупных продуктов, объединённых одним вектором: развитием классифайдов (досок объявлений) в важных для жизни областях. Внутри мы создали буткемп Java-разработки, который поможет на старте выбрать именно ту команду, которая вам подходит.
Какие задачи вас ждут:
– Активное развитие по-настоящему масштабного бизнеса, понятного каждому, кто хоть раз ездил в отпуск или снимал (приобретал) жильё
– Проектирование, разработка и масштабирование микросервисов
– Решение продуктовых и инфраструктурных задач
– Создание и поддержка программного обеспечения от написания до выкладки в продакшн
– Обеспечение стабильной работы компонентов и оперативное решение проблем
Мы ждем, что вы:
– Имеете более трёх лет опыта коммерческой разработки на Java или готовы перейти с другого языка программирования
– Знаете классические алгоритмы и структуры данных
– Разрабатывали сложные веб-приложения или системы обработки данных
– Умеете проектировать системы
Что мы предлагаем:
– Возможность работы в Москве (БЦ «Аврора», ст. М. «Павелецкая»), Санкт-Петербурге (БЦ «Бенуа», Калининский район), Екатеринбурге (БЦ «Палладиум») или Минске (БЦ Rubin Plaza) в офисном или гибридном формате
– Объёмный полис ДМС со стоматологией, коррекцией зрения, регулярным чекапом и помощью при критических заболеваниях (онкологии, болезнях сердца), а также с компенсацией психотерапевтической помощи
– ДМС также можно купить и для близких родственников — компания оплатит 80%
– Стараемся сократить регулярные расходы сотрудников: у нас сотни вариантов корпоративных скидок во всех областях жизни, компенсация оплаты питания в офисе и многие другие сопутствующие бенефиты
Узнать подробнее и откликнуться.
Вертикали — это бизнес-юнит Яндекса, в который входят несколько крупных продуктов, объединённых одним вектором: развитием классифайдов (досок объявлений) в важных для жизни областях. Внутри мы создали буткемп Java-разработки, который поможет на старте выбрать именно ту команду, которая вам подходит.
Какие задачи вас ждут:
– Активное развитие по-настоящему масштабного бизнеса, понятного каждому, кто хоть раз ездил в отпуск или снимал (приобретал) жильё
– Проектирование, разработка и масштабирование микросервисов
– Решение продуктовых и инфраструктурных задач
– Создание и поддержка программного обеспечения от написания до выкладки в продакшн
– Обеспечение стабильной работы компонентов и оперативное решение проблем
Мы ждем, что вы:
– Имеете более трёх лет опыта коммерческой разработки на Java или готовы перейти с другого языка программирования
– Знаете классические алгоритмы и структуры данных
– Разрабатывали сложные веб-приложения или системы обработки данных
– Умеете проектировать системы
Что мы предлагаем:
– Возможность работы в Москве (БЦ «Аврора», ст. М. «Павелецкая»), Санкт-Петербурге (БЦ «Бенуа», Калининский район), Екатеринбурге (БЦ «Палладиум») или Минске (БЦ Rubin Plaza) в офисном или гибридном формате
– Объёмный полис ДМС со стоматологией, коррекцией зрения, регулярным чекапом и помощью при критических заболеваниях (онкологии, болезнях сердца), а также с компенсацией психотерапевтической помощи
– ДМС также можно купить и для близких родственников — компания оплатит 80%
– Стараемся сократить регулярные расходы сотрудников: у нас сотни вариантов корпоративных скидок во всех областях жизни, компенсация оплаты питания в офисе и многие другие сопутствующие бенефиты
Узнать подробнее и откликнуться.
👍4
Чем отличается final finally finalize?
Тем, что это даже синтаксически разные вещи. Как и вопрос о методах Object, это способ начать разговор.
finalize – метод-финализатор из Object.
final – модификатор, который применяется к переменным, полям, методам и классам. Переменная или поле становится неизменяемым и требует инициализации. Финальный метод нельзя переопределить в наследниках. Финальный класс не может иметь наследников вообще. Используется для создания хорошего API по принципу наименьших привилегий.
Когда в методе используется локальная переменная внешней области видимости, она обязана быть effectively final. В этом случае ключевое слово final необязательно, но значение всё равно не должно меняться.
finally – часть языковой конструкции try-catch-finally.
Любое исключение, выброшенное из блока try переводит исполнение в самый соответствующий ему catch (при наличии). Этим продиктована необходимость располагать блоки catch в строгом порядке, от типа исключения-наследника, к родителю. В случае multicatch тот же порядок должен соблюдаться и внутри одного catch. Больше примеров про порядок.
После выполнится блок finally. Выполняется он в любом случае, было исключение или нет. Типичное использование – освобождение ресурсов, обязательные завершающие действия.
Для требующих финализации классов («ресурсов») добавляется интерфейс AutoCloseable, повторяющийся код блока final выносится в метод close и вызывается неявно в конце try-with-resources. Если в этой конструкции присутствует и явный final, он будет выполнен после.
@javatasks #java
Тем, что это даже синтаксически разные вещи. Как и вопрос о методах Object, это способ начать разговор.
finalize – метод-финализатор из Object.
final – модификатор, который применяется к переменным, полям, методам и классам. Переменная или поле становится неизменяемым и требует инициализации. Финальный метод нельзя переопределить в наследниках. Финальный класс не может иметь наследников вообще. Используется для создания хорошего API по принципу наименьших привилегий.
Когда в методе используется локальная переменная внешней области видимости, она обязана быть effectively final. В этом случае ключевое слово final необязательно, но значение всё равно не должно меняться.
finally – часть языковой конструкции try-catch-finally.
Любое исключение, выброшенное из блока try переводит исполнение в самый соответствующий ему catch (при наличии). Этим продиктована необходимость располагать блоки catch в строгом порядке, от типа исключения-наследника, к родителю. В случае multicatch тот же порядок должен соблюдаться и внутри одного catch. Больше примеров про порядок.
После выполнится блок finally. Выполняется он в любом случае, было исключение или нет. Типичное использование – освобождение ресурсов, обязательные завершающие действия.
Для требующих финализации классов («ресурсов») добавляется интерфейс AutoCloseable, повторяющийся код блока final выносится в метод close и вызывается неявно в конце try-with-resources. Если в этой конструкции присутствует и явный final, он будет выполнен после.
@javatasks #java
👍6🔥1
⚡️Всероссийский Хакатон ФИЦ 2024
🚀Попробуйте себя в одном из предложенных кейсов:
1. Семантический делитель текстов: Разработать алгоритм, который сможет обеспечить точное разделение текста на блоки.
2. Контекстный перевод названий научных работ: Разработать переводчик, который будет переводить названия научных работ.
3. Прогнозирование бизнес драйверов: Разработать решение для задачи прогнозирования временных рядов бизнес-драйверов.
4. Система контроля и управления доступом: Разработка системы контроля и управления доступом.
И др. 16 кейсов смотрите на сайте: https://фиц2024.рф/hackathon
Хакатон пройдет в 2 этапа: Отборочный этап в Онлайн, Финал в Офлайн.
🏆Призовой фонд: 6 000 000 руб.
🔥Дедлайн регистрации: 26 ноября, 23:59
📅Даты отборочного этапа: 29 ноября - 2 декабря
🦾Даты финала: 3 - 4 декабря
Зарегистрируйтесь для участия в хакатоне: https://фиц2024.рф/hackathon
#реклама
О рекламодателе
🚀Попробуйте себя в одном из предложенных кейсов:
1. Семантический делитель текстов: Разработать алгоритм, который сможет обеспечить точное разделение текста на блоки.
2. Контекстный перевод названий научных работ: Разработать переводчик, который будет переводить названия научных работ.
3. Прогнозирование бизнес драйверов: Разработать решение для задачи прогнозирования временных рядов бизнес-драйверов.
4. Система контроля и управления доступом: Разработка системы контроля и управления доступом.
И др. 16 кейсов смотрите на сайте: https://фиц2024.рф/hackathon
Хакатон пройдет в 2 этапа: Отборочный этап в Онлайн, Финал в Офлайн.
🏆Призовой фонд: 6 000 000 руб.
🔥Дедлайн регистрации: 26 ноября, 23:59
📅Даты отборочного этапа: 29 ноября - 2 декабря
🦾Даты финала: 3 - 4 декабря
Зарегистрируйтесь для участия в хакатоне: https://фиц2024.рф/hackathon
#реклама
О рекламодателе
👍4🎉4🔥2
Какие существуют литералы?
Литерал – последовательность символов, обозначающая значение примитивного типа (или строки).
🔘 Целочисленные (Integer). Возможные форматы: 2019, 1__000_000 (с Java 7), 10048L (можно l, но будет путаться с 1), 0xfd12aa, 0b1011101, 07654321.
🔘 С плавающей точкой (floating-point). Возможные форматы: 123.4, 56.7e8, .07, 42F, 1.4D (избыточно, по умолчанию и так double).
🔘 Символы и строки. Символ (char) – в одинарных кавычках: 'R'. Спецсимволы пишутся с бэкслешем: '\n'. Любой символ можно представлять в виде escape-последовательности: '\u00F1'. Строковый литерал – последовательность символов в двойных кавычках: "Blabla". Для символов строки действуют те же правила.
🔘 Логические (boolean). true и false.
🔘 Специальный литерал null.
Все нюансы описаны в официальной документации.
@javatasks #java
Литерал – последовательность символов, обозначающая значение примитивного типа (или строки).
🔘 Целочисленные (Integer). Возможные форматы: 2019, 1__000_000 (с Java 7), 10048L (можно l, но будет путаться с 1), 0xfd12aa, 0b1011101, 07654321.
🔘 С плавающей точкой (floating-point). Возможные форматы: 123.4, 56.7e8, .07, 42F, 1.4D (избыточно, по умолчанию и так double).
🔘 Символы и строки. Символ (char) – в одинарных кавычках: 'R'. Спецсимволы пишутся с бэкслешем: '\n'. Любой символ можно представлять в виде escape-последовательности: '\u00F1'. Строковый литерал – последовательность символов в двойных кавычках: "Blabla". Для символов строки действуют те же правила.
🔘 Логические (boolean). true и false.
🔘 Специальный литерал null.
Все нюансы описаны в официальной документации.
@javatasks #java
👍8❤2🔥2
erid: 2VtzqvK3CH4
5 декабря встретимся на онлайн-митапе для java-разработчиков от Naumen. Спикеры поделятся опытом в промышленной java-разработке, реальными кейсами и полезными рекомендациями.
В программе три доклада:
🔸 Как приручить JSON — Максим Осипов, руководитель группы разработки Naumen SMP
🔸 Прагматика микросервисов: строим большую систему с помощью пачки монолитов — Дмитрий Черкасов, DevRel Jmix
🔸 Бэкэнд изображений в ОК — Руслан Измайлов, ведущий java-разработчик в ОК, VK
Старт митапа 5 декабря в 16:00 мск | 18:00 екб.
Участие как всегда бесплатное, нужна только регистрация.
→ Зарегистрироваться на митап.
Реклама, АО «Нау-сервис», ИНН 6671116364
https://www.naumen.ru/
5 декабря встретимся на онлайн-митапе для java-разработчиков от Naumen. Спикеры поделятся опытом в промышленной java-разработке, реальными кейсами и полезными рекомендациями.
В программе три доклада:
🔸 Как приручить JSON — Максим Осипов, руководитель группы разработки Naumen SMP
🔸 Прагматика микросервисов: строим большую систему с помощью пачки монолитов — Дмитрий Черкасов, DevRel Jmix
🔸 Бэкэнд изображений в ОК — Руслан Измайлов, ведущий java-разработчик в ОК, VK
Старт митапа 5 декабря в 16:00 мск | 18:00 екб.
Участие как всегда бесплатное, нужна только регистрация.
→ Зарегистрироваться на митап.
Реклама, АО «Нау-сервис», ИНН 6671116364
https://www.naumen.ru/
👍6🔥2❤1
Какие бывают модификаторы?
🔘 Модификаторы доступа private, protected, public (рассмотрим подробнее в разделе #Классы)
🔘 Модификаторы для многопоточности synchronized и volatile (подробнее чуть позже)
🔘 static (рассмотрим подробнее в разделе #Классы)
🔘 final
🔘 abstract (рассмотрим подробнее в разделе #Классы)
🔘 native – реализация метода скрыта внутри JVM, нельзя указывать в пользовательском коде
🔘 transient – поле будет пропущено при сериализации
🔘 strictfp – самый экзотический, ограничивает точность вычисления для переменной с плавающей точкой до стандарта IEEE. Нужно для переносимости между платформами.
@javatasks #java
🔘 Модификаторы доступа private, protected, public (рассмотрим подробнее в разделе #Классы)
🔘 Модификаторы для многопоточности synchronized и volatile (подробнее чуть позже)
🔘 static (рассмотрим подробнее в разделе #Классы)
🔘 final
🔘 abstract (рассмотрим подробнее в разделе #Классы)
🔘 native – реализация метода скрыта внутри JVM, нельзя указывать в пользовательском коде
🔘 transient – поле будет пропущено при сериализации
🔘 strictfp – самый экзотический, ограничивает точность вычисления для переменной с плавающей точкой до стандарта IEEE. Нужно для переносимости между платформами.
@javatasks #java
👍10❤2🔥2
🤨11👍5🐳3🔥2
Найдите ошибку в коде
Ошибка в том, что оператор try не имеет соответствующего оператора catch. Оператор try используется для обработки исключений, но в этом случае он не обрабатывает ни одного исключения. Поэтому при возникновении исключения в блоке try будет получена ошибка:
Error:(2, 13) java: exception handling mismatch
Чтобы исправить ошибку, необходимо добавить оператор catch для обработки исключения.
После исправления ошибки код будет компилироваться и выполняться без ошибок.
@javatasks #java
Error:(2, 13) java: exception handling mismatch
Чтобы исправить ошибку, необходимо добавить оператор catch для обработки исключения.
После исправления ошибки код будет компилироваться и выполняться без ошибок.
@javatasks #java
👍10🥱4❤2🔥2
👍15🔥3