Java Guru 🤓
13.4K subscribers
937 photos
15 videos
791 links
Канал с вопросами и задачами с собеседований!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrSQZ

Мы на бирже: telega.in/channels/javatasks/card?r=lcDuijdm
Download Telegram
Хотите создавать масштабируемую и отказоустойчивую микросервисную архитектуру?

19 ноября в 20:00 мск приглашаем на открытый вебинар, где вы узнаете, как применять ключевые стратегии Circuit Breaker, Retry и Load Balancing для повышения стабильности систем.

В современном мире сбоев и перегрузок не избежать. Но с правильными паттернами они не будут вас пугать. Мы разберем на практике, как защитить приложения от краха и обеспечить их стабильную работу даже при высокой нагрузке.

👨‍💻🛠👨🏻‍💻 Вебинар будет полезен разработчикам, архитекторам и DevOps-инженерам, которые хотят повысить производительность своих микросервисов, внедрив современные решения для автоматического масштабирования и балансировки.

🔴 Регистрируйтесь прямо сейчас и получите скидку на курс «Software Architect»: https://vk.cc/cEUIT6

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🔥4👍2
Что выведет данный код?
🔥8👍42
Что выведет данный код?
Anonymous Quiz
73%
ABC
4%
abc
16%
java.lang.IllegalStateException
7%
Ничего
👍85🔥3🥰1🥱1
Уже завтра собеседование на Middle Java с разработчиком из МТС

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
2👍14🔥51
Разработчик бэкенда на Java в Вертикали в Яндекс

Вертикали — это бизнес-юнит Яндекса, в который входят несколько крупных продуктов, объединённых одним вектором: развитием классифайдов (досок объявлений) в важных для жизни областях. Внутри мы создали буткемп 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
👍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

#реклама
О рекламодателе
👍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
👍82🔥2
erid: 2VtzqvK3CH4

5 декабря встретимся на онлайн-митапе для java-разработчиков от Naumen. Спикеры поделятся опытом в промышленной java-разработке, реальными кейсами и полезными рекомендациями.

В программе три доклада:
🔸 Как приручить JSON — Максим Осипов, руководитель группы разработки Naumen SMP
🔸 Прагматика микросервисов: строим большую систему с помощью пачки монолитов — Дмитрий Черкасов, DevRel Jmix
🔸 Бэкэнд изображений в ОК — Руслан Измайлов, ведущий java-разработчик в ОК, VK

Старт митапа 5 декабря в 16:00 мск | 18:00 екб.

Участие как всегда бесплатное, нужна только регистрация.

→ Зарегистрироваться на митап.

Реклама, АО «Нау-сервис», ИНН 6671116364
https://www.naumen.ru/
👍6🔥21
Какие бывают модификаторы?

🔘 Модификаторы доступа private, protected, public (рассмотрим подробнее в разделе #Классы)
🔘 Модификаторы для многопоточности synchronized и volatile (подробнее чуть позже)
🔘 static (рассмотрим подробнее в разделе
#Классы)
🔘 final
🔘 abstract (рассмотрим подробнее в разделе
#Классы)
🔘 native – реализация метода скрыта внутри JVM, нельзя указывать в пользовательском коде
🔘 transient – поле будет пропущено при сериализации
🔘 strictfp – самый экзотический, ограничивает точность вычисления для переменной с плавающей точкой до стандарта IEEE. Нужно для переносимости между платформами.


@javatasks #java
👍102🔥2
Что выведет данный код?
👍5🔥2
Что выведет данный код?
Anonymous Quiz
58%
Error
38%
11 22 33
1%
11 33
1%
22 33
3%
null
🤨11👍5🐳3🔥2
Найдите ошибку в коде

Ошибка в том, что оператор try не имеет соответствующего оператора catch. Оператор try используется для обработки исключений, но в этом случае он не обрабатывает ни одного исключения. Поэтому при возникновении исключения в блоке try будет получена ошибка:

Error:(2, 13) java: exception handling mismatch

Чтобы исправить ошибку, необходимо добавить оператор catch для обработки исключения.

После исправления ошибки код будет компилироваться и выполняться без ошибок.


@javatasks #java
👍10🥱42🔥2
Что выведет данный код?
👍5🔥3
Что выведет данный код?
Anonymous Quiz
55%
0 0
2%
1 1
0%
2
43%
Compiler Error
👍15🔥3
Что выведет данный код?
👍4🔥3🥱3