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

Наш сайт: javarocks.ru

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

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

Если вам нужно написать Comparator для сортировки объектов по возрастанию, обычно он выглядит так:

public class ByScoreComparator implements Comparator<User> {

@Override
public int compare(User u1, User u2) {
return (int) signum(u2.getAge() - u1.getAge());
}
}


➡️ Главная проблема — понять, от чего отнимать, чтобы порядок был правильным. Правильный ответ с первого раза получается редко, и часто мы замечаем ошибку уже после запуска кода.

Теперь это не нужно. Можно использовать ссылки на методы:

Comparator<User> comparator = Comparator
.comparingDouble(User::getAge)
.thenComparing(User::getName);
List<User> hList = ...;
hList.sort(comparator);


🗣 Такой подход упрощает создание компараторов.
🔝 Топ-80 вопросов и ответов на собеседовании по Java

Подборка из 80 важных вопросов по Java, сгруппированных по пяти основным темам: основы и синтаксис, объектно-ориентированное программирование (ООП), обработка исключений и утверждения, основные API, а также параллелизм и многопоточность.

Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Чем занимается
Java разработчик
и сколько он
зарабатывает?


👉 Java Rocks | #shorts
Вакансии для Java-разработчиков за последние 14 дней:

Java Developer (Junior). Удалённо (РФ), 100–150 т.р.

Junior Java Developer. Удалённо

QA Automation Engineer (Java). Удалённо, 280–300 т.р.

Java разработчик. Удалённо (РФ), 270–320 т.р.

Java разработчик. Удалённо, 320–360 т.р. гросс

QA full stack (Java). Удалённо, 315–350 т.р. гросс

Full Stack Developer (Java / Javascript). Удалённо (не из РФ), 6000–7500 $ gross

Software Engineer Java. Удалённо, 5000–6500 $ gross

Senior Java Developer. Сербия / гибрид или удалёнка, до 6000 EUR

Java разработчик. Удалённо, от 7500$ gross

#подборка #java
✔️ Java main() Method

Метод main(), вероятно, станет первым методом, с которым вы познакомитесь, начиная изучать Java, так как он является обязательной частью любой самостоятельной программы на этом языке. В этой статье разбираемся с main() на примерах.

🖥 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Pattern Matching для instanceof

В Java 14 был представлен Pattern Matching для оператора instanceof. Эта возможность упрощает и делает более читабельным код, который проверяет типы объектов и затем приводит их к этим типам.

✔️ Используйте эту фишку для написания более чистого и читаемого кода, избегая лишних явных приведений типов
✉️ Вакансии по Java за последнюю неделю:

⭐️ Java-разработчик. Удалённо, 200-300 т.р.

⭐️ QA Automation Engineer (Java). Удалённо, 280-200 т.р.

⭐️ Java разработчик. Удалённо (РФ), 270-320 т.р.

⭐️ QA Fullstack на JAVA (WEB+Mob). Удалённо (РФ), 280-330 т.р.

⭐️ QA Lead (Java). Удалённо (РФ), от 330 т.р.
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Строковые шаблоны (Preview)

Строковые шаблоны (string templates) — новая функция в режиме preview, упрощающая создание строк с вычисляемыми значениями.

🗣 Ранее используемая в Java конкатенация приводила к сложному коду, тогда как строковая интерполяция в других языках сокращает код, но увеличивает риски безопасности.

ℹ️ Шаблонные выражения сочетают лаконичность интерполяции и высокую безопасность.

String name = "Joan";
String info = STR."My name is \{name}";
assert info.equals("My name is Joan"); // true


Выражение использует обработчик STR и встроенное выражение {name}, которое может включать строки, арифметику, методы и поля. Обработчики выполняются динамически и обеспечивают безопасность кода. Шаблоны не работают без обработчика, отвечающего за интерполяцию и валидацию.
🔗 Конкатенация строк в Java

Конкатенация строк — это процесс объединения двух или более строк в одну новую строку с последующим возвратом результата. Такая операция часто используется при формировании сообщений, построении SQL-запросов, логировании и других задачах, где важно собрать текст из разных частей.

В Java есть два основных способа выполнить конкатенацию. Давайте их рассмотрим.

🟢 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Прыжки по массиву

Дан целочисленный массив nums. Изначально вы располагаетесь на первом индексе массива, и каждый элемент массива представляет собой максимальную длину вашего прыжка на этой позиции.
Возвращается true, если вы можете достичь последнего индекса, или false в противном случае.

Алгоритм использует максимальную длину прыжка в каждой позиции, чтобы определить самый дальний индекс, до которого он может добраться. Постоянно обновляя самый дальний индекс, он проверяет, возможно ли достичь последнего индекса, и возвращает соответствующий результат (True или False).

- Если текущий индекс i больше, чем farthest, это означает, что мы не можем продолжить, поэтому мы возвращаем False.
- Если farthest больше или равен последнему индексу, значит, мы достигли конца массива и возвращаем True.
- Если мы завершаем цикл, не достигнув конца массива, мы возвращаем False.
⚠️ Обработка исключений в Java

Полностью исключить ошибки программирования невозможно — разработчики способны создавать самые непредсказуемые сценарии. Поэтому в языке должен быть предусмотрен механизм для работы с ошибками. Давайте разберёмся, как он устроен в Java.

📌 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Вакансии по Java за последнюю неделю:

🟧 Java-разработчик Middle+. Удалённо (РФ), 180-200 т.р.

🟧 QA Full stack (Java). Удалённо (РФ), 250-408 т.р.

🟧 QA Full Stack Java. Удалённо (РФ), 315-350 т.р.

🟧 Full Stack Developer (Java / JavaScript). Удалённо, 600-750 т.р.

🟧 Fullstack QA (Java). Офис (Сербия), ЗП договорная
Please open Telegram to view this post
VIEW IN TELEGRAM
✉️ Дайджест полезных материалов по Java, вышедших со 2 по 8 июня 2025 г.

🔎 Почитать:

🚩 На javarocks.ru:

🚩 Добавление и удаление элементов в ArrayList
🚩 Класс PrintStream в Java

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

🚩 Создание form login с помощью Spring Security 6
🚩 Интеграция API-тестов с Jenkins Pipeline: с чего начать?
🚩 Одноклассовый энтерпрайз
🚩 Java Digest #25
🚩 Нашел, проверил, убедил: как мы организовали генерацию SQL-запросов, проверку сложных данных и при чем здесь Allure
🚩 Покерная лаборатория закрывается, ловите исходники
🚩 Циклическая зависимость, давайте жить дружно
🚩 AI-ассистенты для кодинга в 2025: сравниваем GigaChat, Claude, GPT-4o и DeepSeek на реальных задачах
🚩 Эволюция Java в 2025 году: ключевые тренды и успешные кейсы
🚩 Семантический поиск по статьям Хабра в PostgreSQL + индексация текстов LLM в Ollama
🚩 30 лет Java: от провалившегося гаджета до фундамента разработки ПО

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

🟢 Программирование стало проще, когда понял ЭТО
🟢 Creating Cloud Native Capabilities Using the Latest Features from Java and the JVM

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

#дайджест
Please open Telegram to view this post
VIEW IN TELEGRAM
50 лучших вопросов для собеседования по программированию на Java

Подборка вопросов (с ответами, конечно), которые вам вполне могут задать на собеседовании на позицию, связанную с написанием кода на Java.

📖 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Deep Java Library — это высокоуровневая open-source библиотека Java для ML и Deep Learning

DJL — это удобная библиотека Java для Machine Learning.
Библиотека предоставляет целый набор разных моделей, можно легко подобрать нужную модель по заданным параметрам

Конечно же есть возможность создать свою модель и сохранить её для дальнейшего использования.

🖥 GitHub
🟡 Доки
🟡 Примеры использования
🟡 Обзор DJL
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
🖥 Интеграция Яндекс.Диска в Java: Полный гайд

Хотите интегрировать Яндекс.Диск в свой Java-проект? В этом видео я покажу, как быстро и просто работать с API Яндекс.Диска, получить OAuth токен, а также загружать файлы в облачное хранилище. Мы разберем ключевые моменты, сравним API с аналогами и напишем полноценный Java-код для работы с Yandex Disk.

🌐🗣СМОТРЕТЬ VKVIDEO
Please open Telegram to view this post
VIEW IN TELEGRAM
💥 Абстрактные классы в Java на конкретных примерах

Абстракция – это принцип ООП, который заключается в том, что при проектировании классов и создании объектов мы должны определять только ключевые свойства сущности и отбрасывать второстепенные.

Абстрактный класс — это, по сути, “заготовка” для группы будущих классов. Саму заготовку нельзя использовать напрямую — она слишком “сырая”. Однако она описывает базовое состояние и общее поведение, которые будут унаследованы дочерними классами.

Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM