JavaRocks
2.66K subscribers
141 photos
14 videos
307 links
Базовый канал для изучения языка Java.

Наш сайт: javarocks.ru

Все необходимые туториалы и материалы.

Тесты для проверки знаний. Лучшие практики и паттерны проектирования.

@viktorreh
@anothertechrock
Download Telegram
📌 Вакансии по Java за последние две недели:

☕️ Java-разработчик (Spring Boot). Удалённо (РФ, РБ), 1500-2500 р./час, 20-40+ часов/месяц

☕️ Ведущий Java-разработчик. Удалённо (гражданство РФ, РБ), от 230 т.р.

☕️ Java Senior Разработчик (Spring). Удалённо (Москва), 240-300 т.р.

☕️ Lead Java Senior Developer (HFT). Гибрид (Лиссабон, Португалия), 80-100 т. евро

☕️ Senior Java Developer (Spring Boot). Удалённо, до $6000
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Вакансии для Java-разработчиков за последние 14 дней:

Java Разработчик. удалённо (РФ, РБ), от 1500 до 2500 руб/час

Ведущий Java Разработчик. удалённо (РФ, РБ), от 230 т.р.

Java/Go Разработчик. удалённо (Ульяновск), 160–200 т.р.

Lead Java Senior Developer (HFT). гибрид (Лиссабон, Португалия), от 80 до 100 т.евро

Java/Kotlin-разработчик. удалённо

Java разработчик. удалённо

#подборка #java
🔔 Дайджест полезных материалов по Java, вышедших с 17 по 22 февраля 2026 г.

📌 Почитать:

☕️ На javarocks.ru:

🟢 Исключения: отмечено, не отмечено и настраиваемое
🟢 Java преобразование ArrayList в Array
🟢 Как в java преобразовать число в строку

☕️ Другие платформы:

🟢 Трудности разработки Java-игр: каким был мобильный геймдев нулевых?
🟢 Разрыв в неизменяемости: почему Java Records нужны оптики (Lenses)
🟢 Garbage Collector: жизнь без иллюзий
🟢 Ceylon и NULL: как сделать null нормальным
🟢 Руководство по ArchUnit — как модульно тестировать архитектуру
🟢 Параллельная обработка Kafka сообщений с гарантией at-least-once в условиях медленного внешнего сервиса
🟢 Универсальный сервис динамического шардирования
🟢 Вытесняй и властвуй: еще раз про многозадачность
🟢 Импортозамещение, которое мы заслужили: Большой разбор клиента «Телега»
🟢 Слоистая архитектура для людей
🟢 Инструменты навигации в GIGA IDE
🟢 28 дней со Spring AI: от простого чата до полноценного инструмента

📌 Посмотреть:

🟢 ВСЁ про JAVA-СОБЕСЕДОВАНИЯ В 2026. ЗАРПЛАТЫ, ЛОВУШКИ, ВОПРОСЫ
🟢 Towards Better Checked Exceptions

Хорошего дня!

#дайджест
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет всем, кто любит алгоритмические головоломки!
Это классическая задача, которую часто дают на собеседованиях. Она простая, но требует сообразительности для достижения максимальной эффективности.

Условие:
В массиве находятся числа последовательности от 1 до N в произвольном порядке. Одно из чисел может быть пропущено.

Задача:
Написать алгоритм, который найдет, какого числа не хватает.

Жесткое ограничение:
Сделать это нужно за один проход по массиву

Пример: [1, 2, 3, 4, 5, 6, 8, 9, 10] → Алгоритм должен вернуть 7.


🤔 Как бы вы решили эту задачу? Не лишайте себя удовольствия найти решение самостоятельно!

👉 Java Rocks | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
🛠 Алгоритм Действий

Весь секрет в сложении!

1. Считаем, сколько должно быть:
Используем формулу для суммы чисел от 1 до N. Это наша Полная Сумма.
Полная Сумма = N*(N + 1)/2


2. Считаем, сколько есть:
Проходим по нашему массиву один раз и складываем все числа. Это наша Фактическая Сумма.

3. Находим разницу:
Вычитаем то, что есть, из того, что должно быть.
Пропущенное число = Полная Сумма - Фактическая Сумма


💻 Реализация на Java
public class Main {
public static void main(String[] args) {
// Задаем N - максимальное число, которое должно быть в последовательности.
int n = 10;

// Массив, в котором отсутствует одно число (например, 3)
// int[] array = new int[] {1, 2, 4, 5, 6, 7, 8, 9, 10}; // Если 3 пропущено
int[] array = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // Тестовый массив без пропусков

// 1. Вычисляем Полную Сумму (Full Sum)
// Используем формулу суммы арифметической прогрессии: N * (N + 1) / 2
// Это эталонная сумма всех чисел от 1 до N.
int sumAll = (n * (n + 1)) / 2;

// 2. Вычисляем Фактическую Сумму (Actual Sum) за один проход
int sum = 0;
// Это единственный проход по массиву, соответствующий ограничению O(N)
for (int i = 0; i < array.length; i++) {
sum += array[i];
}

// 3. Сравниваем суммы и выводим результат
if (sumAll == sum) {
System.out.println("Число не пропущено");
} else {
// Разница между полной и фактической суммой - это и есть пропущенное число.
System.out.println("Пропущено число: " + (sumAll - sum));
}
}
}

Это решение — идеальный ответ на собеседовании.
😉

Оно демонстрирует не только умение писать код, но и знание базовой математики, позволяющее создать алгоритм с оптимальной временной сложностью (O(N)) и пространственной сложностью (O(1))!

Расскажите в комментариях, что получилось у вас!

👉 Java Rocks | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Снова задачка, но сегодня про белок и их тусовки 🐿

Задача: Белки обожают вечеринки с сигарами! Обычно для хорошей вечеринки нужно от 40 до 60 сигар (включительно). Но если наступают выходные — правила меняются: нужно минимум 40 сигар, а верхнего предела нет! Чем больше — тем веселее.

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

Примеры:
cigarParty(30, false) → false (мало сигар, не выходные)

cigarParty(50, false) → true (в пределах 40–60, не выходные)

cigarParty(70, true) → true (выходные, больше 40)


А как бы вы решили эту задачу? Жду ваши варианты в комментариях! 😉

👉 Java Rocks | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Уже догадались?

Давайте сначала просто проверяем условие:

▪️Если выходные (
isWeekend == true) — проверяем только нижнюю границу: cigars >= 40
▪️Если не выходные — проверяем обе границы:
cigars >= 40 && cigars <= 60

Решение:
public boolean cigarParty(int cigars, boolean isWeekend) {
if (isWeekend) {
return cigars >= 40;
} else {
return cigars >= 40 && cigars <= 60;
}
}

▫️cigars >= 40 — обязательное условие для любой успешной вечеринки

Или более коротко:
public boolean cigarParty(int cigars, boolean isWeekend) {
return cigars >= 40 && (isWeekend || cigars <= 60);
}


▫️ Если
isWeekend == true, то условие сразу истинно (выходные — верхней границы нет)
▫️ Если
isWeekend == false, то дополнительно проверяем cigars <= 60

👉 Java Rocks | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Стильное свидание — получим ли мы столик в ресторане?

Вы и ваша пара собираетесь в ресторан. У каждого из вас есть "стильность" одежды от 0 до 10.
Шансы получить столик определяются по трем уровням:

▫️ 2 (да) — если хотя бы один из вас очень стильный (8+ баллов)
▫️ 0 (нет) — если хотя бы один из вас одет ужасно (2 или меньше баллов)
▫️1 (возможно) — во всех остальных случаях

Примеры:
dateFashion(5, 10) → 2 (партнер очень стильный — 10 баллов)

dateFashion(5, 2) → 0 (партнер плохо одет — 2 балла)

dateFashion(5, 5) → 1 (средние показатели)


ПОДСКАЗКА

Один из вариантов решения использует такую структуру:

if (xxx) {
return 0;
} else if (yyy) {
return 2;
} else {
return 1;
}
где xxx и yyy — это выражения с операторами <=, >=, которые проверяют значения you и date для получения соответствующего результата.

Порядок операторов if имеет решающее значение — случай с результатом 0 (нет) имеет приоритет над остальными случаями, поэтому эта проверка должна идти первой.


Напишите свои варианты кода — посмотрим, кто сможет сделать решение короче и изящнее! 🧑‍💻

👉 Java Rocks | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
1👎1
Когда система падает под нагрузкой, виноват не язык и не фреймворк. Почти всегда проблема в архитектуре.

🔔 Курс «Highload Architect» учит строить системы, которые выдерживают сотни тысяч и миллионы запросов в секунду. Вы разберёте весь путь запроса — от клиента до базы данных и обратно — и поймёте, какие архитектурные решения действительно работают под высокой нагрузкой, а какие ломаются первыми.

Программа ориентирована на веб-разработчиков, тимлидов и архитекторов ПО.

На курсе рассмотрим типовые и нетривиальные кейсы, с которыми сталкиваются крупные сервисы.

🎁 Закрываем набор до 5.03.2026 в группу февраля со скидкой 🔤 . Подробности у менеджера.

Пройти короткое вступительное тестирование: https://vk.cc/cV1gyD

📌Практическое обучение проводится в прямом эфире — вебинары не являются предзаписанными.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Вот и решение:

Ключевой момент: сначала проверяем худший сценарий (стиль ≤ 2), потом лучший (стиль ≥ 8), и только потом средний вариант.

public int dateFashion(int you, int date) {
// Сначала проверяем провальный случай
if (you <= 2 || date <= 2) {
return 0;
}
// Затем проверяем гарантированный успех
else if (you >= 8 || date >= 8) {
return 2;
}
// Во всех остальных случаях — "возможно"
else {
return 1;
}
}

Так почему же именно такой порядок проверок?

Порядок ВАЖЕН! Если бы мы поменяли условия местами:
// НЕПРАВИЛЬНЫЙ вариант!
if (you >= 8 || date >= 8) {
return 2;
} else if (you <= 2 || date <= 2) {
return 0; // Эта проверка никогда не сработает для пар (10, 1)!
} else {
return 1;
}


В неправильном варианте для пары (10, 1) сработала бы первая проверка и вернула 2, хотя по условию должен быть 0 (один из пары имеет стиль ≤ 2).

Есть и альтернативное решение (менее читаемое, но компактное):
public int dateFashion(int you, int date) {
if (you <= 2 || date <= 2) return 0;
return (you >= 8 || date >= 8) ? 2 : 1;
}


Сталкивались ли вы с похожими задачами на приоритетность условий в реальных проектах? Поделитесь опытом!

👉 Java Rocks | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Вакансии для Java-разработчиков за последние 14 дней:

Java/Go Разработчик. удалённо (Ульяновск), 160–200 т.р.

Java Middle+ Разработчик. удалённо (РФ), 240 т.р.

Java Senior разработчик. удаленно (РФ), 250–270 т.р.

Lead Java Developer. удалённо, 6500 $

Разработчик Java. офис

#подборка #java
🔥 Вакансии по Java за последние две недели:

🟣 Java Middle+ Разработчик (Spring Framework). Удалённо, 250-268 т.р.

🟣 Senior Java Developer (Spring Boot). Удалённо, 250-300 т.р. на руки

🟣 Java Middle+ Developer (Camunda). Удалённо, 300-400 т.р.

🟣 Lead Java Developer. Удалённо, от $6500

🟣 Senior Java Developer (Spring Boot, Kafka/AMPS). Удалённо из Грузии или с релокацией в Польшу/Кипр, $7000-8000
Please open Telegram to view this post
VIEW IN TELEGRAM
🔔Новые вакансии по Java за последние 14 дней

1️⃣ Java Backend Developer (Middle+)
Middle · Remote

2️⃣ Java Middle QA Fullstack
Selecty
Middle · Remote · Россия/Беларусь · 💰 262 500 – 291 700 ₽

3️⃣ Java Developer
Т1
Middle · Remote

4️⃣ Java разработчик
Wildberries
Middle · Remote

5️⃣ Java разработчик
Wildberries Банк
Middle · Remote

6️⃣ Java-разработчик
Яндекс
Middle · Hybrid

7️⃣ Java разработчик
Метр квадратный (М2)
Middle · Remote

8️⃣ Java Developer
Дип Диджитал
Middle · Remote · Россия · 💰 от 150 000 ₽

9️⃣ Java Software Testing Engineer (Manual + Automation)
Skyro
Middle · Remote · 💰 от 3 000 $

1️⃣0️⃣ Java Middle QA Automation
Протей
Middle · Hybrid · Санкт-Петербург, Россия · 💰 до 260 000 ₽

1️⃣1️⃣ Java разработчик
SENSE
Senior · Remote · 💰 до 450 000 ₽

1️⃣2️⃣ Java Developer
Сбер
Junior · Hybrid · Москва

1️⃣3️⃣ Java QA Engineer Middle+
Selecty
Middle · Remote · Россия/Беларусь · 💰 336 000 – 422 000 ₽

1️⃣4️⃣ Java Developer
Senior · Remote · Москва

1️⃣5️⃣ Java Developer Intern
VK
Junior · Hybrid · Москва, Санкт-Петербург

1️⃣6️⃣ Java-разработчик
Sette
Middle · Remote

1️⃣7️⃣ Java-разработчик
Мегафон
Junior · Office · Москва

1️⃣8️⃣ Java-разработчик
Юмани
Middle · Hybrid · Санкт-Петербург

✈️ Talento | #вакансии #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
☄️ Вакансии по Java за последнюю неделю:

1️⃣ Стажер-разработчик Java
ЛАНИТ – Би Пи Эм
Intern · Hybrid

2️⃣ Java-разработчик
Мегафон
Junior · Office · Москва

3️⃣ Java разработчик MAAS
VK
Senior · Hybrid · Санкт-Петербург

4️⃣ Backend Developer (Node.js)
КА Gaba
Middle · Remote

5️⃣ Middle Java разработчик
Магнит
Middle · Hybrid

6️⃣ Старший Java разработчик (Платформа данных)
OZON
Senior · Office · Москва

7️⃣ Senior Java разработчик
РТЛабс
Senior · Remote

8️⃣ Automation QA Engineer (Java, Mid)
Prequel
Middle · Remote · 💰от $1000

9️⃣ Java Developer
Альфа-Банк
Senior · Hybrid

1️⃣0️⃣ Senior Java Developer/Tech Lead (ЕФС)
Сбер
Senior · Hybrid · Москва

1️⃣1️⃣ Java-разработчик (ATM.Host-Auto)
Сбер
Middle · Hybrid · Москва

1️⃣2️⃣ Backend Java/Python developer (Montecristo)
Сбер
Middle · Hybrid · Москва

1️⃣3️⃣ Middle+/Senior Java разработчик
Сбер
Middle · Hybrid · Москва

1️⃣4️⃣ Java разработчик IAM
Сбер
Middle · Hybrid · Москва

1️⃣5️⃣ Android разработчик (PFM)
Сбер
Middle · Office · Москва

1️⃣6️⃣ Руководитель группы разработки
Т1
Lead · Remote · Нижний Новгород

1️⃣7️⃣ Технический лид Java (Развитие внешнеэкономического партнерства)
Сбер
Lead · Remote · Москва

1️⃣8️⃣ Tech Lead Java (Инструменты управления операционными рисками)
Сбер
Lead · Remote · Москва

1️⃣9️⃣ Trading Technology Engineer (Java Quant)
Bitmex
Senior · Remote · 💰$9750 - 10833

✈️ Talanto | #вакансии
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Вакансии по Java за последнюю неделю:

6️⃣ Java разработчик
ДОМ.РФ
Senior · Hybrid

2️⃣ iOS-разработчик
Senior · Remote

3️⃣ Java Developer (Minecraft Forge/Mixins)
Mid · Remote

4️⃣ Java/Kotlin-разработчик в Финтех
Яндекс
Mid · Remote

5️⃣ Java разработчик, инструменты поисковой платформы
OZON
Mid · Remote

6️⃣ Java-разработчик (OneWork)
Сбер
Hybrid · г Москва

7️⃣ Java Developer
Лоция
Mid · Remote

8️⃣ Middle Java Developer
МТС
Mid · Remote

9️⃣ Java Developer (Core)
Koronatech
Mid · Remote · 💰 ₽200 000 – 300 000

6️⃣1️⃣ Middle Java разработчик
Сбер
Mid · Hybrid · Москва

6️⃣6️⃣ Senior Java Developer
Top Selection
Senior · Remote · Russia · 💰 ₽290 000 – 320 000

✈️ Talanto | #вакансии
Please open Telegram to view this post
VIEW IN TELEGRAM
☕️ Вакансии по Java за последнюю неделю:

1️⃣ Разработчик Java / AI поисковый ассистент
Ozon
Москва

2️⃣ Android-разработчик в Маркетплейс
RWB (Wildberries & Russ)
Москва

3️⃣ Android-разработчик
VK (VK Знакомства)
Remote · Санкт-Петербург

4️⃣ Android Developer в команду Core
VK (ОК)
Remote · Москва

5️⃣ Middle Android Developer
Водород
Mid · Hybrid · Минск

6️⃣ Android - разработчик в команду Speed
АВИТО ТЕХ
Remote · Москва

7️⃣ Старший Android-разработчик ленты клипов ВКонтакте
VK (VK Клипы)
Remote · Москва

8️⃣ Ведущий Android-разработчик
VK (MAX)
Remote · Москва

9️⃣ Руководитель группы разработки (Team Lead)
Т-Банк
Lead · Hybrid · Рязань

✈️ Talanto | #вакансии
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Вакансии по Java за последнюю неделю:

📥 Junior Salesforce Developer
Синтегрико/Syntegrico
Intern · Office · Брест

📥 Java Developer
Aston
Junior · Remote · Россия

📥 Java Developer
Aston
Junior · Remote · Беларусь

📥 Разработчик бэкенда программы лояльности Свои Плюсы
Яндекс
Junior · Hybrid · Санкт-Петербург

📥 Junior Java Developer
EPAM
Junior · Hybrid · Гданск, Краков, Варшава, Вроцлав

📥 Стажер Java разработчик [Прикладные сервисы УЦ]
МТС
Junior · Hybrid · Москва

📥 Java-разработчик в платформу Кинопоиска
Яндекс
Junior · Office · Санкт-Петербург

📥 Flutter Developer (Стажер/Junior)
Крайнет
Junior · Минск

📥 Java-разработчик (Intern)
VK
Junior · Hybrid

📥 Стажер-разработчик Java
Технопарк Сколково
Junior · Remote

📥 Разработчик бэкенда в команду развития сотрудников
Яндекс
Middle · Office · Екатеринбург

📥 Middle Java-разработчик
Сбер
Middle · Remote · Санкт-Петербург

📥 Backend-разработчик (Java/Kotlin, Middle)
Альфа-Банк
Middle · Hybrid

📥 Java Developer
Яндекс
Middle · Hybrid

📥 Backend разработчик (middle-senior)
КАЗГИСА
Middle · Нур-Султан

📥 Разработчик Java/Python (LLM)
Bell Integrator
Middle · Hybrid · Москва, Санкт-Петербург, Нижний Новгород, Сочи, Екатеринбург

📥 Разработчик Java / AI поисковый ассистент
OZON
Middle · Office · Москва

📥 Middle Java разработчик
Магнит
Middle · Remote

📥 Android Developer Middle/Senior
Каспи Софтвер
Middle · Remote · Минск

📥 Разработчик видеотехнологий для Android
Яндекс
Middle · Hybrid · Москва

📥 Java-разработчик
Т1
Middle · Office · Нижний Новгород

📥 Middle Java разработчик (СберТранспорт)
Сбер
Middle · Office · Санкт-Петербург

📥 Middle Java разработчик (Мои Сервисы. Приним.AI)
Сбер
Middle · Office · Санкт-Петербург

📥 Middle Java разработчик (Феникс)
Сбер
Middle · Hybrid · Санкт-Петербург

📥 Java Developer (BMC Remedy)
Kaspersky
Middle · Office · Москва

📥 Java/Scala Engineer (Middle+/Senior)
Агентство NEWHR
Middle · Hybrid

✈️ Talanto | #вакансии
Please open Telegram to view this post
VIEW IN TELEGRAM
1
💥 Вакансии по Java за последнюю неделю:

6️⃣ Android Trainee
Andersen
Junior · Минск

2️⃣ Java-разработчик
Юмани
Junior · Hybrid · Санкт-Петербург

3️⃣ Junior Java Developer
Сбер
Junior · Office · Екатеринбург

4️⃣ Java разработчик
OZON
Middle · Remote

5️⃣ Java-разработчик (Backend)
VK
Middle · Remote · Санкт-Петербург

6️⃣ Android-разработчик
Сбер
Middle · Remote · Москва · 💰₽250 000 – 300 000

7️⃣ QA Fullstack Java
Зонтик
Middle · Remote · РФ · 💰₽300 000 – 320 000

8️⃣ Java-разработчик
Т1
Middle · Office · Казань

9️⃣ Специалист по сертификационным испытаниям (ФСТЭК)
ИнфоТеКС
Middle · Office · Москва, Санкт-Петербург, Пенза

6️⃣1️⃣ Java разработчик
Wildberries Банк
Middle · Remote


✈️ Talanto | #вакансии
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Вакансии по Java за последнюю неделю:

⭐️ Стажер Java разработчик
МТС
Junior · Office · Москва

⭐️ Разработчик на Java в команду инфраструктурных сервисов учётной системы
Яндекс
Junior · Hybrid · Санкт-Петербург

⭐️ Junior Java Developer
Junior · Hybrid · Россия ·💰₽75 000 – 125 000

⭐️ Java разработчик (junior+/middle)
Nexign
Middle · Санкт-Петербург

⭐️ Разработчик на Java/Kotlin в Рекламу
Яндекс
Middle · Hybrid · Санкт-Петербург

⭐️ Java-разработчик (Middle+)
Сбер
Middle · Hybrid · Москва

⭐️ Java Developer (HDFS)
Bell Integrator
Middle · Remote · Россия

⭐️ Middle Java Developer
65apps
Middle · Remote

⭐️ Java SDET Инженер
КА DG
Middle · Hybrid · Казань

⭐️ Java-разработчик (ЦФА)
Т1
Middle · Office · Казань

⭐️ Java-разработчик
Юмани
Middle · Hybrid · Санкт-Петербург

⭐️ Lead Java Developer
Aston
Middle · Remote · Россия


✈️ Talanto | #вакансии
Please open Telegram to view this post
VIEW IN TELEGRAM