Senior Java Developer @seniorjavist Channel on Telegram

Senior Java Developer

@seniorjavist


Изучаем Java.

По вопросам сотрудничества: @adv_and_pr

Канал на бирже: https://telega.in/c/seniorjavist

Senior Java Developer (Russian)

Добро пожаловать на наш канал Senior Java Developer! Если вы увлечены изучением языка программирования Java или уже опытный разработчик, то вы попали по адресу. Наш канал посвящен обмену знаниями, опытом и новостями о Java. Здесь вы найдете информацию о последних тенденциях в мире Java, обзоры инструментов и библиотек, а также советы по улучшению своих навыков разработчика. Подписывайтесь на наш канал, чтобы быть в курсе всех событий и общаться с единомышленниками. Мы рады видеть всех участников сообщества, не важно уровень владения Java - здесь найдется что-то полезное для каждого. Если у вас есть вопросы о сотрудничестве, обращайтесь к нашему администратору @adv_and_pr. Присоединяйтесь к нам и участвуйте в обсуждениях, делитесь своим опытом и узнавайте новое каждый день. Не упустите шанс стать лучшим Java разработчиком! Также не забудьте заглянуть на наш канал на бирже: https://telega.in/c/seniorjavist

Senior Java Developer

06 Dec, 20:53


Semaphore

Semaphore — это класс, который позволяет ограничивать количество потоков, одновременно работающих с каким-либо ресурсом.

Поток должен получить разрешение, чтобы войти в критическую секцию.
Semaphore управляет набором разрешений (permits), а конструктор принимает количество разрешений.
Если разрешений нет, поток ставится в очередь до освобождения.

Метод acquire() получает разрешение, release() — освобождает.

Senior Java Developer

06 Dec, 12:03


Пишите код быстрее и оставляйте больше времени на творчество вместе с AI-ассистентом разработчика

Устали от рутины? Отдайте ее AI!
Заходите на платформу GitVerse и пишите код вместе с AI-ассистентом GigaCode. Он поддерживает более 35 языков, умеет анализировать контекст, дописывать строки и функции в автоматическом и ручном режимах, а еще — писать код по комментариям и делать рефакторинг с помощью коротких команд. Всего за пару минут AI-помощник может оценить проект и трудозатраты на его создание.

Внутри AI есть функция CodeChat — с ней можно оптимизировать или отрефакторить имеющийся код, сгенерировать тесты и документацию, а также объяснить фрагмент кода. Задавать вопросы можно и по всему открытому файлу, и по конкретному фрагменту — просто выделите его в редакторе и сформулируйте запрос к CodeChat.

Хорошие новости — недавно GigaCode обновился и стал еще лучше справляться с задачами разработки: теперь наиболее вероятные продолжения кода будут генерироваться с учётом контекста всего проекта. Не забудьте обновить плагин GigaCode :)

Зарегистрироваться на GitVerse.

Senior Java Developer

05 Dec, 15:01


⁉️ Устали гадать, что творится внутри вашего Java-приложения? Хотите мониторить всё в реальном времени?

🗓 На открытом вебинаре 10 декабря в 20:00 мск мы расскажем, как внедрить Observability в Java-приложения, отслеживать состояние системы и решать проблемы до их появления!

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

Спикер Сергей Петрелевич — опытный разработчик на Java и Kotlin.

🔗 Регистрируйтесь на вебинар: https://otus.pw/VM4U/

Успейте получить скидку на участие в курсе «Java Developer. Professional».

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Senior Java Developer

05 Dec, 14:28


⚙️ Stream.reduce()

В Java метод Stream.reduce() выполняет свёртку элементов потока в одно значение, используя заданную ассоциативную функцию. Это мощный инструмент для операций, таких как суммирование, произведение или объединение.

Senior Java Developer

05 Dec, 11:19


Приглашаем на митап IT_One «Джедайские трюки Java, или Как оптимизировать приложения»

📍Офлайн в Москве
🌐 С онлайн-трансляцией
📆 17 декабря в 18:30 (МСК, GMT+3)

В программе — два доклада и круглый стол:

🗣 Рецепты оптимизации Hibernate — Андрей Зяблин (Magnit Tech)
Узнаем, как повысить производительность и функциональность Hibernate.

🗣 Happens-before и откуда он берется — Дмитрий Владимиров (IT_One)
Команды не всегда исполняются в нужном порядке. Выясним, когда это происходит и научимся влиять на последовательность с помощью happens-before.

🗣 Круглый стол «Как грамотно использовать многопоточку, чтобы от нее был профит?»
Разберемся, как выглядит современная многопоточка, сколько ядер должно быть в компании и как определять процессы, которые стоит сделать многопоточными.

Вы сможете задать вопросы спикерам, а авторы лучших вопросов получат призы от IT_One.

Регистрируйтесь на сайте митапа.

Реклама. ООО "ИТ1-Решения". ИНН 9717134195

Senior Java Developer

04 Dec, 14:29


⚙️ Objects.requireNonNull()

В Java метод Objects.requireNonNull() проверяет, что объект не равен null, и выбрасывает NullPointerException, если проверка не пройдена. Это удобный способ защитить код от неожиданных null.

Senior Java Developer

04 Dec, 11:40


Приглашаем Java- и Kotlin-разработчиков на митап от команды МТС Web Services. Приготовили для вас микс из топовых технических докладов и неформального общения за барбекю.

Когда: 6 декабря, 18:00

Где: площадка «Бетон», Кальварийская ул., 17, г. Минск

Программа вечера:

— Расскажем, как строим новое облако в 2024-м
— Поговорим о разработке IAM в облаке
— Обсудим, как создать Development Platform
— Разберёмся, что такое реконсиляция и почему она важна для облачной инфраструктуры

После официальной части — барбекю и нетворкинг!

Регистрация здесь.

Senior Java Developer

03 Dec, 12:43


➡️ Pebble — современный движок шаблонов для Java

Pebble — это гибкий и производительный движок шаблонов, который позволяет легко интегрировать динамический HTML в ваши приложения. Разработанный с акцентом на расширяемость и безопасность, Pebble поддерживает удобный синтаксис, похожий на Twig.

Компактный синтаксис: интуитивно понятный синтаксис для построения шаблонов.
Шаблоны высокого уровня: поддержка наследования и макросов.
Безопасность: автоматическое экранирование HTML и поддержка WhiteList-фильтров.
Расширяемость: добавление пользовательских функций и фильтров.

🔗 Ссылочка на доку

Senior Java Developer

01 Dec, 17:25


⚙️ Math.max()

В Java метод Math.max() позволяет найти большее из двух чисел. Он работает с различными типами данных, такими как int, double, float, и полезен в задачах сравнения.

Senior Java Developer

01 Dec, 12:14


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

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

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

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

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

Реклама, АО «Нау-сервис», ИНН 6671116364
https://www.naumen.ru/
erid: 2Vtzqx9U7pj

Senior Java Developer

01 Dec, 10:04


⚙️ List.of()

В Java метод List.of() позволяет быстро создать неизменяемый список. Это удобно для создания небольших коллекций с фиксированным набором элементов.

Senior Java Developer

30 Nov, 11:24


⚙️ Arrays.binarySearch()

В Java метод Arrays.binarySearch() выполняет бинарный поиск в отсортированном массиве, возвращая индекс найденного элемента. Если элемент не найден, возвращается отрицательное значение, указывающее потенциальную позицию вставки.

Senior Java Developer

29 Nov, 21:22


⚙️ Comparator.reverseOrder()

В Java метод Comparator.reverseOrder() создаёт компаратор, который сортирует элементы в порядке убывания. Это удобно для работы с сортировкой коллекций, когда нужно изменить стандартный порядок.

Senior Java Developer

29 Nov, 15:05


Закрытый клуб для айтишников

FAANG School, чьи выпускники работают в Яндексе, СБЕРЕ и других гигантах, запустили бесплатное сообщество для всех, кто изучает Java.

Общайся в ламповом чате с такими же людьми «в теме», получай фидбек у опытных разрабов и черпай практические рекомендации от экспертов школы.

В чате уже больше 10 000 человек, а новенькие, которые подключатся сейчас, получат доступ к большой библиотеке Java Junior с полезными материалами:

– Пошаговая RoadMap по Java
– Мануал по Docker. Основные команды и концепции
– Микросервисы. Вопросы с собеседований
– Шпаргалка по Kafka
– Инструкция по работе с Git
– Подробный гайд, как найти работу в IT без опыта
– Подборка платформ с вакансиями для java-разработчиков

Вступай сейчас. Открыли доступ всего на 24 часа!

Senior Java Developer

28 Nov, 16:54


Многопоточность в Java

Смотреть статью

Senior Java Developer

28 Nov, 14:55


⚡️ Приглашаем на открытый урок «Разрабатываем Kafka-appender для логгера».

🗓 05 декабря в 20:00 МСК

Интеграция логирования с системами обмена сообщениями, такими как Apache Kafka, становится все более востребованной в современных Java-приложениях. Однако найти готовый функционал для этой задачи не всегда просто, поэтому часто возникает необходимость разработки собственного Kafka-appender для логгера.

На вебинаре разберем:

✔️ Зачем нужен Kafka-appender для логгера.
✔️ Подходы к разработке собственного Kafka-appender.
✔️ Шаги по созданию Kafka-appender для логгера.
✔️Практические рекомендации

Вебинар пройдет в рамках курса «Java Developer. Professional», все посетители получат welcome-скидку на обучение.

🔗 Ссылка на регистрацию: https://otus.pw/bWyu/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Senior Java Developer

28 Nov, 13:35


#вопросы_с_собеседований
Как, используя LinkedHashMap, сделать кэш c «invalidation policy»?

Необходимо использовать LRU-алгоритм (Least Recently Used algorithm) и LinkedHashMap с access-order. В этом случае при обращении к элементу он будет перемещаться в конец списка, а наименее используемые элементы будут постепенно группироваться в начале списка. Так же в стандартной реализации LinkedHashMap есть метод removeEldestEntries(), который возвращает true, если текущий объект LinkedHashMap должен удалить наименее используемый элемент из коллекции при использовании методов put() и putAll().

Стоит заметить, что LinkedHashMap не позволяет полностью реализовать LRU-алгоритм, поскольку при вставке уже имеющегося в коллекции элемента порядок итерации по элементам не меняется.

Senior Java Developer

27 Nov, 20:45


#вопросы_с_собеседований
Зачем нужен HashMap, если есть Hashtable?

☕️ Методы класса Hashtable синхронизированы, что приводит к снижению производительности, а HashMap - нет;
☕️ HashTable не может содержать элементы null, тогда как HashMap может содержать один ключ null и любое количество значений null;
☕️ Iterator у HashMap, в отличие от Enumeration у HashTable, работает по принципу «fail-fast» (выдает исключение при любой несогласованности данных).

Hashtable это устаревший класс и его использование не рекомендовано.

Senior Java Developer

27 Nov, 15:00


Систематизируете и углубите знания разработки на Java на курсе Яндекс Практикума.

За 6 месяцев научитесь тому, что отличает опытного разработчика от новичка:

— Напишете своё приложение‑блог с использованием наиболее популярного на сегодняшний день фреймворка Spring Boot, а также научитесь правильно писать тесты с кешированием контекстов;

— Используя реактивный стек на Spring Boot, напишете веб‑приложение, которое состоит из нескольких сервисов, использует данные из СУБД и Redis в качестве кеша, производит аутентификацию и авторизацию пользователей. Сервисы будут развёрнуты при помощи средств Docker;

— Создадите инфраструктуру банка для совершения трансакции с аудитом операций при помощи микросервисной архитектуры, которая поддерживается экосистемой Spring. Часть микросервисов будут сообщаться между собой через RESTful API, а часть — через стриминговую платформу Apache Kafka. Также будет задействован ELK‑стек для мониторинга и логирования.

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

Начать можно бесплатно!

Senior Java Developer

27 Nov, 14:29


Какова оценка временной сложности операций над элементами из HashMap? Гарантирует ли HashMap указанную сложность выборки элемента?

В общем случае операции добавления, поиска и удаления элементов занимают константное время.

Данная сложность не гарантируется, т.к. если хэш-функция распределяет элементы по корзинам равномерно, временная сложность станет не хуже Логарифмического времени O(log(N)), а в случае, когда хэш-функция постоянно возвращает одно и то же значение, HashMap превратится в связный список со сложностью О(n).

Пример кода двоичного поиска приведен выше.

Senior Java Developer

26 Nov, 19:59


#вопросы_с_собеседований
Сделайте HashSet из ключей HashMap.

Ответ на картинке.

Senior Java Developer

26 Nov, 14:54


👩‍💻 Начали путь в программировании и хотите практики?

На вебинаре 4 декабря в 20:00 мск вы создадите свой первый сетевой чат на Java!
Вместе разберем, как работать с сетью, потоками и java .io.
Этот вебинар — отличная практика для начинающих.

Это ваш шанс выйти за рамки теории и сделать реальный проект, который отлично подойдет для портфолио.

Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.

➡️ Регистрируйтесь на вебинар, погружайтесь в мир Java и получайте скидку на большое обучение «Java-разработчик»: https://otus.pw/MacY/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Senior Java Developer

26 Nov, 14:21


Метод startsWith()

Метод startsWith() в Java имеет два варианта и проверяет, начинается ли строка с указанного префикса, начиная с указанного индекса или с начала (по умолчанию).

Senior Java Developer

25 Nov, 19:46


Оптимизация строк

При конкатенации строк на Java с помощью оператора +, например, в цикле for, каждый раз создается новый объект String, что приводит к потере памяти и увеличению времени работы программы.

Также следует избегать создания Java строки с помощью конструктора класса.

Senior Java Developer

25 Nov, 15:20


Позитивный JVM Митап. Никакого Spring
28 ноября, 17:30
Офлайн (Москва) + онлайн-трансляция


Возможность почувствовать вайб Java-конференций уходящего года. В уютном кругу любителей JVM будем говорить только про Core Java.

Александр Богданов: «Кодогенерируй правильно!»
Александр Токарев: «Патчинг байт-кода: когда это нужно»
Александр Ланцов: «По следам 1BRC: трюки и подходы к оптимизации производительности»
Владимир Ситников: «Обратная совместимость в Java-мире»

👉 Узнать больше о докладах и зарегистрироваться

Senior Java Developer

25 Nov, 15:17


Создание объектов только при необходимости

Создание объектов – одна из самых затратных операций в Java. Лучшая практика – создавать их только при необходимости, когда они действительно нужны.

Senior Java Developer

25 Nov, 13:18


⁉️Хотите погрузиться в мир имитационного моделирования? Узнать, как создать «цифровой двойник» для бизнеса?

27 ноября в 19:00 мск на бесплатном вебинаре мы откроем для вас возможности AnyLogic! Вы изучите основы создания моделей и разберете ТЗ для пункта выдачи товаров. Регистрация

Узнайте, как использовать AnyLogic для оптимизации процессов, сократить затраты и улучшить работу компании. Начните с нашего вебинара и получите практический опыт!

👨‍💻Спикер Никита Власов — инженер по имитационному моделированию с опытом работы в международных компаниях.

🔥Регистрируйтесь прямо сейчас, забронируйте место и получите скидку на большое обучение «Имитационное моделирование на базе AnyLogic»: https://otus.pw/Rcdh/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Senior Java Developer

24 Nov, 18:29


Меняем местами две переменные в одной строке

Многие знают, что в Python можно красиво поменять значения переменных в одну строку: a, b = b, a

Можно ли что-то похожее сделать в Java? Да. На картинке показан пример, но в реальных проектах так делать не стоит.

Senior Java Developer

23 Nov, 19:45


#вопросы_с_собеседований
Что такое Executor?

Executor — это интерфейс, который позволяет запускать задачи асинхронно. Используется вместе с интерфейсами Callable и Future для асинхронного выполнения задач.

Он определяет единственный метод execute(), который принимает объект Runnable с задачей для выполнения.
Интерфейс позволяет отделить логику создания и запуска потоков от самих задач.

Потоки создаются заранее и хранятся в пуле, а задачи просто отправляются на выполнение через execute().
Это дает выигрыш в производительности, т. к. исключает накладные расходы на создание новых потоков.

Senior Java Developer

22 Nov, 19:26


Collections.emptyList()

Collections.emptyList() возвращает пустой неизменяемый список.
Это статический фабричный метод из класса Collections, который возвращает пустой список типа List<Object>.

Основные моменты:
— Возвращает пустой список, а не null. Это полезно, чтобы избежать проверок на null.
— Список неизменяемый (immutable). Нельзя добавлять или удалять элементы из него.
— Работает быстрее, чем создание нового списка через new ArrayList().
— Может использоваться как значение по умолчанию или стартовое значение для списка.

#это_база

Senior Java Developer

21 Nov, 20:08


#вопросы_с_собеседований
Чем полезны неизменяемые объекты?

Неизменяемость (immutability) помогает облегчить написание многопоточного кода. Неизменяемый объект может быть использован без какой-либо синхронизации. К сожалению, в Java нет аннотации @Immutable, которая делает объект неизменяемым, для этого разработчикам нужно самим создавать класс с необходимыми характеристиками.

Для этого необходимо следовать некоторым общим принципам: инициализация всех полей только в конструкторе, отсутствие методов setX()
вносящих изменения в поля класса, отсутствие утечек ссылки, организация отдельного хранилища копий изменяемых объектов и т.д.

Senior Java Developer

21 Nov, 14:59


Забирай пошаговую roadmap по JAVA

FAANG School в течение 24 часов отдают бесплатно свою библиотеку знаний. Вы можете получить доступ:

– Redis - 5 улучшений для твоего пет-проекта
– Пошаговая RoadMap по Java
– Мануал по Docker. Основные команды и концепции
– Микросервисы. Вопросы с собеседований
– Шпаргалка с горячими клавишами JetBrains IDE. Ускоришь работу в 10 раз
– Desk setup. Подборка аксессуаров для комфортной работы
– Шпаргалка по Kafka
– Инструкция по работе с Git
– Подробный гайд, как найти работу в IT без опыта
– Подборка платформ с вакансиями для java-разработчиков

Последнее пополнение - Шпаргалка по Spring, в которой подробно разобрали, что такое паттерн Наблюдатель, и как его реализовать в Java. А также познакомитесь с событиями и научитесь работать с ними в Spring Boot!

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

Senior Java Developer

21 Nov, 14:46


#вопросы_с_собеседований
Что такое тернарный оператор выбора?

Тернарный условный оператор ?: - оператор, которым можно заменить некоторые конструкции операторов if-then-else.

Выражение записывается в следующей форме:

условие ? выражение1 : выражение2

Если условие выполняется, то вычисляется выражение1 и его результат становится результатом выполнения всего оператора. Если же условие равно false, то вычисляется выражение2 и его значение становится результатом работы оператора. Оба операнда выражение1 и выражение2 должны возвращать значение одинакового (или совместимого) типа.

Senior Java Developer

20 Nov, 17:23


#вопросы_с_собеседований
Можно ли объявить класс абстрактным, если в нем нет абстрактных членов? Какова может быть цель такого класса?

Да, класс можно объявить абстрактным, даже если он не содержит абстрактных членов. Из-за абстрактности его объект не может быть создан, но сам класс может служить корневым для некоторой иерархии, предоставляя методы, которые могут быть полезны для реализаций.

Senior Java Developer

20 Nov, 15:08


Бесплатный интенсив: Java-разработчик: старт в профессии с нуля.

📆 Когда: 27-28 ноября в 19:00 по мск.

За два дня интенсива в прямом эфире, под руководством опытного Java-разработчика, вы сможете:


✔️ Познакомиться с синтаксисом и основными конструкциями языка Java.
✔️ Написать свой первый проект и определить, подходит ли вам профессия разработчика.
✔️ Создать Telegram-бота с нуля.
✔️ Узнать ответы интересующие вас вопросы.
✔️ Получить доступ к закрытому профессиональному сообществу.

🎁 Подарки для участников
интенсива: гайд «Как заговорить на сленге IT-специалистов», карта компетенций начинающего Java-разработчика и доступ в закрытое сообщество «Старт в Java» от Хекслета!


Реклама. ООО "ХЕКСЛЕТ РУС". ИНН 7325174845. erid:LjN8K36fP

Senior Java Developer

20 Nov, 14:21


#вопросы_с_собеседований
Что такое метааннотации?


Аннотации, которые применяются к другим аннотациям. Все аннотации, которые не отмечены @Target или отмечены им, но содержат константу ANNOTATION_TYPE, также являются мета-аннотациями.

Senior Java Developer

19 Nov, 19:08


#вопросы_с_собеседований
Напишите потокобезопасную реализацию класса с неблокирующим методом BigInteger next(), который возвращает элементы последовательности: [1, 2, 4, 8, 16, ...]

Ответ на картинке.

Senior Java Developer

19 Nov, 14:59


👩‍💻 Приглашаем вас принять участие в открытом уроке, который посвящён теме «Интернационализация и локализация в приложениях Spring». Вы узнаете, как эффективно реализовать процесс локализации в Spring-приложениях.

Мы рассмотрим работу с классом Locale, использование MessageSource в Spring Boot и без него, способы хранения и смены локали в веб-приложениях, а также локализацию в шаблонах Thymeleaf и сообщений Bean Validation.

Более того, обсудим, почему не стоит локализовывать исключения, и проанализируем исходный код для лучшего понимания процессов.

🗓 25 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework» от Otus.

Программа вебинара:
✔️ Основы локализации в Spring.
✔️ Инициализация и конфигурация MessageSource.
✔️ Управление локалью в веб-приложениях.
✔️ Практические аспекты локализации.

Этот урок будет полезен Java-разработчикам с опытом 1–3 года, а также Kotlin-разработчикам.

🔗 Ссылка на регистрацию:https://otus.pw/RvSi/

🎁 Только в "Черную пятницу", скидки на курс до 15%! Подробности у менеджеров.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Senior Java Developer

19 Nov, 14:41


Может ли один блок catch отлавливать сразу несколько исключений?

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

Senior Java Developer

19 Nov, 12:39


Уже завтра собеседование на Middle Java с разработчиком из МТС

20 ноября (уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
1. Мария Ядерцова ведущий Java-разработчик в МТС Диджитал и ex. Сбербанк-Технологии будет задавать реальные вопросы и задачи разработчику-добровольцу
2. Мария будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
3. В конце можно будет задать любой вопрос Марии

Что узнаешь на прямом эфире от ШОРТКАТ:
• Чего ждут от кандидатов на Middle позиции в Java-разработке
• Какие вопросы задают на интервью и зачем
• Как подготовиться к собесу, чтобы получить оффер

Это бесплатно? Бесплатно

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot

Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqufTvBQ

Senior Java Developer

18 Nov, 11:51


#вопросы_с_собеседований
В реализации класса ArrayList есть следующие поля: Object[] elementData, int size. Объясните, зачем хранить отдельно size, если всегда можно взять elementData.length?

Размер массива elementData представляет собой вместимость (capacity) ArrayList, которая всегда больше переменной size - реального количества хранимых элементов. При необходимости вместимость автоматически возрастает.

Senior Java Developer

17 Nov, 18:44


elastic/elasticsearch ⭐️ 59k

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

https://github.com/elastic/elasticsearch

Senior Java Developer

17 Nov, 14:55


🔞 Java как секс!

Если зубрить ее только по книжкам, то кроме теории и деградации, ты ничему не научишься

В канале Java, полегче 🥵! ты найдешь лучшие практики написания кода. Действующий тимлид европейского финтеха, самобытно и с долей юмора, делится секретами 🤫:

Гайд по Kafka(причем тут порноактриса Piper Perri)

Roadmap java разработчика на 2025

Самый кринжовый подарок, сделанный девушке, с помощью программирования

Как java крадет твои деньги

Топ 8 ошибок при составлении резюме

Самые сложные алгоритмы на моей практике. Не трать на них время

Chatgpt telegram bot с нуля на java 

Миллиард тенге. Самая сложная задача

И это только цветочки. Рекомендую! 
В этом канале даже джуны становятся сеньорами 😏

🔈 Подписывайся, это самый простой способ прокачать свои хард-скиллы:  @javezka

Senior Java Developer

17 Nov, 14:35


#вопросы_с_собеседований
Как поведёт себя коллекция, если вызвать iterator.remove()?

Если вызову iterator.remove() предшествовал вызов iterator.next(), то iterator.remove() удалит элемент коллекции, на который указывает итератор, в противном случае будет выброшено IllegalStateException().

Senior Java Developer

16 Nov, 13:48


#вопросы_с_собеседований
Какие существуют unchecked exception?

Наиболее часто встречающиеся:
ArithmeticException, ClassCastException, ConcurrentModificationException, IllegalArgumentException, IllegalStateException, IndexOutOfBoundsException, NoSuchElementException, NullPointerException, UnsupportedOperationException.

Senior Java Developer

16 Nov, 12:05


⚡️Всероссийский Хакатон ФИЦ 2024

🚀Попробуйте себя в одном из предложенных кейсов:
- Разработка алгоритма трекинга людей в видеопотоке с нескольких камер
- Цифровая карта подземных коммуникаций с использованием Cesium
- Симуляция записи в расписание
- Цифровой сервис для ведения реестра зеленых насаждений города Москвы
- Предсказание необходимого количества средств досмотра
- Система контроля и управления доступом
- Семантический делитель текстов
- Разработка сервиса печати этикеток для производителей одежды
И др. кейсы смотрите на сайте: https://фиц2024.рф/hackathon 

Хакатон пройдет в 2 этапа: Отборочный этап в Онлайн, Финал в Офлайн.

🏆Призовой фонд: 6 000 000 руб.
🔥Дедлайн регистрации: 26 ноября, 23:59
📅Даты отборочного этапа: 29 ноября - 2 декабря
🦾Даты финала: 3 - 4 декабря

Зарегистрируйтесь для участия в хакатоне: https://фиц2024.рф/hackathon

#реклама
О рекламодателе

Senior Java Developer

16 Nov, 11:37


#вопросы_с_собеседований
Каким образом реализованы методы hashCode() и equals() в классе Object?

Реализация метода Object.equals() сводится к проверке на равенство двух ссылок(код 1 на картинке).

Реализация метода Object.hashCode() описана как native, т.е. определенной не с помощью Java кода и обычно возвращает адрес объекта в памяти(код 2 на картинке).

Senior Java Developer

15 Nov, 18:56


Метод before()

Метод before() класса Date проверяет, была ли наша дата раньше той, которую мы передаем в качестве аргумента.

Senior Java Developer

15 Nov, 15:07


👩‍💻 Мечтаете научиться программировать на Java? Пора начинать!

🗓 20 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java-разработчик» от Otus.

Приходите на открытый урок, где мы шаг за шагом создадим игру «Угадай число» с нуля.
Вы познакомитесь с основами языка, поймете, как изменять код и менять функционал программы, освоите первые блоки, которые нужны для старта.

Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.

Хотите научиться создавать приложения? Узнать, как строятся программы на Java? Этот урок — ваш первый шаг в IT!

🔗 Ссылка на регистрацию: https://otus.pw/rY4d/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Senior Java Developer

15 Nov, 14:38


#вопросы_с_собеседований
Какое худшее время работы метода get(key) для ключа, который есть в HashMap?

O(N)
. Худший случай - это поиск ключа в HashMap, вырожденного в список по причине совпадения ключей по hashCode() и для выяснения хранится ли элемент с определённым ключом может потребоваться перебор всего списка.

Но начиная с Java 8, после определенного числа элементов в списке, связный список преобразовывается в красно-черное дерево и сложность выборки, даже в случае плохой хеш-функции, не хуже логарифмической O(log(N)).

Senior Java Developer

14 Nov, 19:12


Как конвертировать ArrayList в массив на Java?

Рассмотрим пример простой программы, которая преобразовывает ArrayList в массив в Java.

Мы используем реализацию метода toArray(T[] a) класса ArrayList, чтобы конвертировать ArrayList в массив на Java. «Под капотом» этого метода используется метод Arrays.copyOf(), чтобы конвертировать ArrayList в Array.

Senior Java Developer

14 Nov, 15:00


👩‍💻 Открытый урок «Знакомство с виртуальными потоками Java»

🗓 21 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Advanced» от Otus.

Легковесные потоки были введены во многих языках программирования, таких как Go, Kotlin и другие. Теперь Java догнала другие языки по этой функциональности.

На вебинаре разберем:

✔️что такое виртуальные потоки;
✔️ чем они отличаются от обычных потоков;
✔️в чём плюсы и минусы их использования.

🔗 Ссылка на регистрацию: https://otus.pw/COTVV/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Senior Java Developer

14 Nov, 13:28


#вопросы_с_собеседований
Как получить коллекцию только для чтения?

При помощи:
Collections.unmodifiableList(list);
Collections.unmodifiableSet(set);
Collections.unmodifiableMap(map).

Эти методы принимают коллекцию в качестве параметра, и возвращают коллекцию только для чтения с теми же элементами внутри.

Senior Java Developer

13 Nov, 20:54


#вопросы_с_собеседований
Почему хранить пароль предпочтительнее в char[]/byte[], а не в String?

☕️ Строка в виде литерала сразу раскрывает пароль, плюс она всегда хранится в string-пуле
☕️ byte[]/char[] возможно сбросить после использования, и удалить все ссылки на него

Senior Java Developer

12 Nov, 19:05


Объединение двух массивов

Наиболее лаконичный способ объединить элементы двух массивов – это воспользоваться классом ArrayUtils из Commons Lang.

Подробнее можно ознакомиться здесь.

Senior Java Developer

12 Nov, 14:57


👩‍💻 Открытый урок «Интернационализация и локализация в приложениях Spring»

🗓 25 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework» от Otus.

Узнайте, как эффективно реализовать интернационализацию и локализацию в Spring-приложениях.

На вебинаре разберем:

✔️работу с классом Locale, использование MessageSource в Spring Boot и без него;
✔️ способы хранения и смены локали в веб-приложениях;
✔️ локализацию в шаблонах Thymeleaf и сообщений Bean Validation;
✔️ обсудим, почему не стоит локализовывать исключения;
✔️ проанализируем исходный код для лучшего понимания процессов.

🔗 Ссылка на регистрацию: https://otus.pw/X16gx/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Senior Java Developer

11 Nov, 10:56


#вопросы_с_собеседований
Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними?

✔️Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
✔️Для создания объекта статического вложенного класса объект внешнего класса не требуется.
✔️Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
✔️Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
✔️В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статического такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание .this после его имени. Например: Outer.this.

Senior Java Developer

09 Nov, 19:40


Анализ дампа кучи Java: разбираем на примерах

Всякий раз, когда вы создаете объект, он хранится в области памяти, которая в приложениях для JVM называется «куча». Как вы уже догадались, объем кучи ограничен, и «кто-то» должен хранить объекты в куче. Этот инструмент называется сборщиком мусора (Garbage Collector).

Смотреть статью

Senior Java Developer

08 Nov, 20:56


Final класс

Нельзя расширять класс, объявленный как final. Проще говоря, никакой класс не может наследоваться от данного.

Прекрасным примером final класса в JDK является String. Первый шаг к созданию неизменяемого класса — пометить его как final, и тогда нельзя будет его расширить.

Senior Java Developer

08 Nov, 15:01


Уже применяешь асинхронную архитектуру в работе? Или только думаешь, как её внедрить?

Podlodka Java Crew с 18 по 22 ноября собирает тех, кто знает, как сделать это эффективно!

Пять дней, мощные практические сессии, опытные спикеры:

- "Spring, Micronaut, Quarkus и Helidon — что круче для современного приложения?" Григорий Кошелев и Андрей Когунь — о плюсах и минусах каждого фреймворка💥

- "Проектируем Event Driven-систему с помощью DDD и Event Storming"
Кирилл Ветчинкин поможет понять, как сделать системы масштабируемыми и управляемыми с помощью событий🚀

- "Apache EventMesh: как приготовить Event Mesh"
Павел Бодячевский поможет внедрить Event Mesh в проект🎯

- "Debezium: окно в асинхронный мир данных" Евгений Ефименко покажет, как обрабатывать данные в реальном времени📊

Забирай билет, чтобы перенять опыт профи!🔥

Senior Java Developer

08 Nov, 14:19


#вопросы_с_собеседований
Что такое модификаторы доступа?

Модификаторы доступа — это инструмент, при помощи которого можно настроить доступ к классам, методам и переменным.

Бывают следующие модификаторы, упорядоченные в порядке повышения доступа:
1) private — используется для методов, полей и конструкторов. Уровень доступа — только класс, внутри которого он объявлен.
2) package-private(default) — может использоваться для классов. Доступ только в конкретном пакете (package), в котором объявлен класс, метод, переменная, конструктор.
3) protected — такой же доступ, как и package-private + для тех классов, которые наследуются от класса с модификатором protected.
4) public — используется и для классов. Полноценный доступ во всем приложении.

Senior Java Developer

07 Nov, 12:44


Apache Struts

Apache Struts — фреймворк с открытым исходным кодом для создания Java EE веб-приложений. Struts был создан для того, чтобы чётко разделить модель (бизнес-логику), представление (HTML-страницы) и контроллер (отвечающий за передачу данных от модели к представлению и обратно).

https://github.com/apache/struts

Senior Java Developer

06 Nov, 20:11


#вопросы_с_собеседований
Какой символ является разделителем при указании пути в файловой системе?

Для различных операционных систем символ разделителя различается. Для Windows это \, для Linux - /.

В Java получить разделитель для текущей операционной системы можно через обращение к статическому полю File.separator.

Senior Java Developer

06 Nov, 15:01


Привет!
Мы в ОКБ Понедельник изучаем, как проходят найм и адаптация новых сотрудников в российском бигтехе.

Вы можете стать участником исследования, если:
– Ваша роль – продакт-менеджер или senior разработчик (Java, JavaScript, Go, Python)
– Работаете не больше 6 месяцев в таких компаниях, как Яндекс, Авито, VK, Ozon, Альфа, Сбер, Т-Банк и другие
– Находитесь в активном или пассивным поиске вышеуказанных вакансий

Мы ценим ваше время и предлагаем:
– Онлайн-беседу в удобное для вас время продолжительностью 1-1,5 часа
– Полную конфиденциальность
– Вознаграждение 5000 ₽ за участие в интервью

Если вам интересно, напишите @kstrv7
Или заполните анкету https://forms.gle/983QGwsCwQFQXSzT8

Подробнее о нас: ponedelnik.ru

Senior Java Developer

06 Nov, 13:25


#вопросы_с_собеседований
Что такое ZonedDateTime?

java.time.ZonedDateTime — аналог java.util.Calendar, класс с самым полным объемом информации о временном контексте в календарной системе ISO-8601. Включает временную зону, поэтому все операции с временными сдвигами этот класс проводит с её учётом.

Документацию можно найти здесь.

Senior Java Developer

05 Nov, 18:14


#вопросы_с_собеседований
Как преобразовать HashMap в ArrayList в Java?

Ответ на картинке.

Senior Java Developer

05 Nov, 15:22


👩‍💻 Пройди тест по Java

Проверь насколько хорошо ты знаешь Java и готов освоить 👩‍💻 Spring!

Ответишь — пройдешь на продвинутый курс "Разработчик на Spring Framework" от OTUS по специальной цене.

👉 ПРОЙТИ ТЕСТ: https://otus.pw/cjAo/

🎫 Начни обучение со скидкой, подробности у менеджеров.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Senior Java Developer

05 Nov, 12:12


#вопросы_с_собеседований
Что вы знаете об интерфейсе FileFilter?

Интерфейс FileFilter применяется для проверки, попадает ли объект File под некоторое условие. Этот интерфейс содержит единственный метод boolean accept(File pathName). Этот метод необходимо переопределить и реализовать. Пример прикреплен.

Senior Java Developer

04 Nov, 18:49


dbeaver — бесплатный универсальный инструмент для работы с базами данных и SQL-клиент.

https://github.com/dbeaver/dbeaver

Senior Java Developer

04 Nov, 14:55


erid:2VtzqxQTSBN
Как устроена работа ИТ-специалистов в Т-Банке?

Загляните в канал T-Crew — тут показывают будни команды и делятся полезным:

— Дайджесты вакансий, регистрация на fast track и приглашения от руководителей.
— Анонсы мероприятий. Например, когда пройдет следующий ИТ-каток, ИТ-пикник и другие нашумевшие ивенты.
— Кейсы, статьи и лайфхаки для работы — от методов планирования до карьерного роста.

Подписаться на T-Crew

Senior Java Developer

04 Nov, 12:45


#вопросы_с_собеседований
Что такое Aspect, Advice, Pointcut и JoinPoint в АОП?

Aspect
— класс, который реализует сквозные функции, такие как управление транзакциями.
Advice — методы, которые выполняются, когда в приложении достигается определенный JoinPoint с соответствующим Pointcut.
Pointcut — набор регулярных выражений, которые сопоставляются с JoinPoint, чтобы определить, нужно ли выполнять Advice или нет.
JoinPoint — некая точка во время выполнения программы, например выполнение метода или обработка исключения.

Senior Java Developer

03 Nov, 17:50


Что такое mutable?

Mutable называются объекты, чьи состояния и переменные можно изменить после создания. Например такие классы, как StringBuilder, StringBuffer.

Senior Java Developer

03 Nov, 15:49


Бесплатное IT-образование в 2024

Отобрали для вас полезные телеграм-каналы, которые помогут освоить программирование и другие IT-направления

Выбирайте нужное и подписывайтесь:

👩‍💻 Python: @PythonPortal
🖥 Базы Данных & SQL: @SQL
👩‍💻 Java: @Java_Iibrary
👩‍💻 С/С++: @Cpportal
📱 GitHub: @git_developer
🤓 Книги айти: @portalToIT
👩‍💻 Frontend: @FrontendPortal
⚙️ Backend: @BackendPortal
👩‍💻 C#: @KodBlog
👩‍💻 Golang: @juniorGolang
👩‍💻 PHP: @PHPortal
👩‍💻 Моб. разработка: @MobDev
👩‍💻 Разработка игр: @GameDevgx
👩‍💻 DevOps: @loose_code
🖥 Data Science: @DataSciencegx
🤔 Хакинг & ИБ: @cybersecinform
🐞 Тестирование: @QAPortal
📱 Маркетинг: @MarketingPortal
🖥 Дизайн: @PortalToDesign

➡️ Сохраняйте себе, чтобы не потерять

Senior Java Developer

02 Nov, 11:00


#вопросы_с_собеседований
Как получить доступ к переопределенным методам родительского класса?

С помощью ключевого слова super мы можем обратиться к любому члену родительского класса - методу или полю, если они не определены с модификатором private.

Senior Java Developer

01 Nov, 18:43


Разбираем на простых примерах: наследование в Java

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

https://proglib.io/p/razbiraem-na-prostyh-primerah-nasledovanie-v-java-2022-03-10

Senior Java Developer

01 Nov, 15:04


⚡️ Открытый урок «Введение в GraalVM: ускоряем ваши Java-приложения»

🗓 7 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Advanced» от Otus.

В современной инфраструктуре всё чаще используются облачные решения, в которых контроль используемых ресурсов напрямую влияет на затраты бизнеса. Поэтому все способы экономии ресурсов важны. Тут на помощь придёт GraalVM!
Но является ли это панацеей?


На вебинаре разберем:

✔️ JIT и AOT: что это такое и в чём разница;
✔️ Причём тут GraalVM и какие особенности его применения.

🔗 Ссылка на регистрацию: https://otus.pw/FvrB/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Senior Java Developer

01 Nov, 12:17


#вопросы_с_собеседований
Что такое «система управления базами данных»?

Система управления базами данных (СУБД) - набор средств общего или специального назначения, обеспечивающий создание, доступ к материалам и управление базой данных.

Основные функции СУБД:

☕️ управление данными;
☕️ журнализация изменений данных;
☕️ резервное копирование и восстановление данных;
☕️ поддержка языка определения данных и манипулирования ими.

Senior Java Developer

31 Oct, 16:56


#вопросы_с_собеседований
Какие подклассы класса OutputStream вы знаете, для чего они предназначены?

☕️ OutputStream - это абстрактный класс, определяющий потоковый байтовый вывод;
☕️ BufferedOutputStream - буферизированный выходной поток;
☕️ ByteArrayOutputStream - все данные, посылаемые в этот поток, размещаются в предварительно созданном буфере;
☕️ DataOutputStream - выходной поток байт, включающий методы для записи стандартных типов данных Java;
☕️ FileOutputStream - запись данных в файл на физическом носителе;
☕️ FilterOutputStream - абстрактный класс, предоставляющий интерфейс для классов-надстроек, которые добавляют к существующим потокам полезные свойства;
☕️ PrintStream - выходной поток, включающий методы print() и println();
☕️ ObjectOutputStream - выходной поток для записи объектов;
☕️ PipedOutputStream реализует понятие выходного канала.

Senior Java Developer

31 Oct, 14:49


Т-Банк ищет Java-разработчиков уровня middle и senior

23 и 24 ноября можно пройти собеседование за выходные и получить оффер, если всем все понравится.

Вот что вас ждет в компании:

— Выстроенный процесс разработки и запуска проектов.
— Современный стек технологий — здесь быстро внедряют новое в работу.
— Разработка на актуальной версии Java.
— Баланс между использованием самописных и стандартных инструментов.
— Сильное комьюнити и обмен опытом на конференциях и митапах.

Узнайте больше и оставьте заявку до 20 ноября

Senior Java Developer

27 Oct, 18:12


Как устроен HashMap?

HashMap состоит из «корзин» (bucket). С технической точки зрения «корзины» — это элементы массива, которые хранят ссылки на списки элементов. При добавлении новой пары «ключ-значение», вычисляет хэш-код ключа, на основании которого вычисляется номер корзины (номер ячейки массива), в которую попадет новый элемент.

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

Senior Java Developer

26 Oct, 18:35


Метод Iterable.forEach

Перебирает переданную коллекцию, и выполняет лямбда-выражение action для каждого ее элемента.

Senior Java Developer

25 Oct, 15:08


#вопросы_с_собеседований
Что вы подразумеваете под статическим блоком в Java?

Статический блок в Java используется для инициализации статических переменных класса. Он выполняется только один раз: при первой загрузке класса в память.

Senior Java Developer

24 Oct, 16:07


Переворачиваем изображение на 180 градусов

С помощью следующего фрагмента кода вы можете получить перевернутое на 180 градусов изображение.

Подробнее можно ознакомиться здесь.

Senior Java Developer

24 Oct, 14:05


Java Team Lead и Senior Java Developer в VK

Мы разрабатываем крупнейший мессенджер в России и ищем Java Team Lead/ Senior Java Developer с опытом работы в бэкенде от 5 лет.

Java Team Lead


🔹Обязанности:
— Разрабатывать платформу мессенджера
— Проработать новые фичи продукта
— Проектировать надёжную архитектуру для высоконагруженных систем
— Руководить бэкендерами, повышать эффективность их работы и помогать им развиваться
— выстраивать и оптимизировать процессы разработки, внедрять новые инструменты и методики

🔹Мы ожидаем от кандидата:
— Вы в бэкенде не менее пяти лет — пишете на Java
— Знаете алгоритмы и структуры данных
— Уже управляли командой разработки численностью от 5–7 человек
— Выстраивали процессы разработки
— Проектировали отказоустойчивые и высоконагруженные сервисы — планировали работы и ресурсы, сроки


Senior Java Developer


🔹Обязанности:
— Проектировать архитектуру и разрабатывать новые сервисы в платформе мессенджера
— Решать технически сложные проблемы по масштабированию высоконагруженного распределённого сервиса
— Проектировать надёжную архитектуру для высоконагруженных систем
— Руководить бэкендерами, повышать эффективность их работы и помогать им развиваться
— Выстраивать и оптимизировать процессы разработки, внедрять новые инструменты и методики

🔹Мы ожидаем от кандидата:
— Вы в бэкенде не менее пяти лет — пишете на Java
— Знаете алгоритмы и структуры данных
— Имеете опыт многопоточного программирования
— Понимаете принципы проектирования отказоустойчивых и высоконагруженных сервисов
— Работали в команде

🔹Мы предлагаем:
— Гибкий график работы
— Бонусы и скидки от партнеров
— Офис в центре города
— ДМС
— Профессиональную команду
— Интересные задачи


Контакты: @lkatherinei

Senior Java Developer

24 Oct, 12:15


#вопросы_с_собеседований
Можем ли мы объявить метод как final в интерфейсе?

Нет, мы не можем объявить метод как final, потому что все методы в интерфейсе абстрактны, поэтому он должен быть реализован подклассом, а метод final не может быть переопределен.

Senior Java Developer

24 Oct, 10:13


Какие брокеры использовать, чтобы обеспечить асинхронную связь между микросервисами?

Узнайте на открытом практическом уроке «Брокеры сообщений: RabbitMQ и Kafka» от OTUS, где мы узнаем:

что такое брокеры сообщений и как они помогают в архитектуре микросервисов
основные различия между RabbitMQ и Kafka, включая их архитектурные подходы
как развернуть и настроить RabbitMQ и Kafka для ваших приложений
практическое использование обоих брокеров на реальных примерах в live demo

🗓 Встречаемся 24 октября в 20:00 мск в преддверии старта курса «Microservice Architecture». Все участники вебинара получат специальную цену на обучение и консультацию от менеджеров OTUS!

➡️ Ссылка для регистрации: https://otus.pw/AZJfL/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Senior Java Developer

24 Oct, 04:28


#вопросы_с_собеседований
Поддерживает ли язык Java множественное наследование?

Это очень хитрый вопрос. Интервьюеры часто говорят: если язык C++ может поддерживать непосредственное множественное наследование, то почему Java не может?

Ответ несколько более сложен, чем может показаться на первый взгляд, поскольку Java поддерживает множественное наследование типов, ведь интерфейс в нём может расширять другие интерфейсы. Но множественное наследование реализаций язык Java не поддерживает.

Senior Java Developer

23 Oct, 19:02


Метод Character.isWhitespace()

Метод определяет в Java, является ли указанное значение типа char пустым пространством, которое включает в себя пробел, табуляцию или новую строку.

Senior Java Developer

23 Oct, 14:56


О чем хотите поговорить: low-latency-сервисах, переходе на Cassandra или тестировании?

Приходите обсуждать важное на митап для Java-разработчиков в Казани. Тут эксперты из Т-Банка поделятся опытом, который пригодится и в вашей работе.

Что узнаете из докладов:

— Как разработчики Т-Банка переехали на Cassandra. Будет полезно, если начинаете использовать систему или думаете на нее переходить.
— Когда и как нужно писать low-latency-сервисы. Пригодится, если думаете, что на Java нельзя писать быстрый код.

Что обсудят на дискуссии:

— Основы тестирования, виды тестов и их применение в реальных ситуациях.
— Преимущества и недостатки юнит-тестов.
— Значимость покрытия кода тестами и подходы к оценке качества.
— Влияние внешних интеграций на процесс тестирования.

Встреча пройдет 30 октября на Кремлевской набережной, зд. 33, в крытом парке «Урам».

Участие бесплатное. Узнайте больше и успейте зарегистрироваться

Senior Java Developer

23 Oct, 14:21


#вопросы_с_собеседований
Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить?

Равные объекты должны возвращать одинаковые хэш коды. При переопределении equals() нужно обязательно переопределять и метод hashCode().

Senior Java Developer

23 Oct, 12:21


🎯 Весь фокус на API — решай реальные задачи и побеждай с Платформой API ВТБ!

Когда: 21 октября — 23 ноября 2024 
Формат: гибридный (онлайн и офлайн) 
Призовой фонд: 2 млн рублей

🔥 Хакатон подойдёт для тебя, если ты:
– Студент или выпускник технического вуза; 
– Backend / Frontend-разработчик;
– Аналитик;
– Архитектор;
– Специалист в области ИБ;
– DevRel.

❗️Выбери свой трек:
• Open API. Создание приложений на основе Open Banking API;
• gRPC. Реализация микросервиса, имплементирующего стандарты СТО БР ФАПИ.СЕК с реализацией на протоколе gRPC;
• Единая платформа аутентификации API. Создание новых подходов к мультифакторной аутентификации.

Прими участие в составе команды или индивидуально. Если нет команды — поможем её собрать!

▶️ Регистрация уже открыта! Подай заявку до 5 ноября, 23:59 МСК по ссылке.

Senior Java Developer

23 Oct, 10:49


#вопросы_с_собеседований
Можно ли указывать конструктор внутри Enum?

Да, конечно. Именно через конструктор и задаются значения внутренних переменных enum.

В качестве примера добавим два поля — ageFrom и ageTo — чтобы обозначить возрастные рамки для каждой роли.

Senior Java Developer

23 Oct, 08:48


⁉️Хотите повысить свою квалификацию в Java-разработке?

👩‍💻 Инвестируйте в успех своей карьеры прямо сейчас! На курсе «Java Developer. Professional» вы получите:

✔️ знание актуального стека технологий;
✔️ 96 часов практической работы с детальным разбором технологий изнутри;
✔️ понимание основ функционирования JVM (сборка мусора, byteCode);
✔️ освоение приемов применения многопоточности;
✔️ практику решения сложных задач с подробным код-ревью от экспертных Java-разработчиков;
✔️ расширение возможностей использования языка Java;
- умение использовать современные фреймворки: Spring WebFlux, Kafka, реактивный Postgres, Kubernetes.

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

Готовы прокачать свою востребованность?

➡️ Пройдите короткий тест прямо сейчас, чтобы получить специальную цену на обучение: https://otus.pw/QpOG/

🎁 А еще приятный бонус: до конца октября действует скидка 10% на обучение.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Senior Java Developer

23 Oct, 07:55


#вопросы_с_собеседований
Что такое Map.of()?

Map.of() — это метод, представленный в Java 9, который позволяет разработчикам создавать неизменяемый Map, содержащий до десяти пар ключ-значение. Он обеспечивает удобный и лаконичный способ создания Map без необходимости написания большого количества кода.

Map.of() является улучшением по сравнению с предыдущим способом создания небольших Map с использованием конструктора класса HashMap, который может быть довольно громоздким и многословным.

Senior Java Developer

22 Oct, 16:59


Шаблон проектирования: Chain of Responsibility

Данная статья будет полезна начинающим Java разработчиком понять зачем нужен шаблон проектирования «Цепочка ответственности» и как его можно использовать на примерах.

Итак начнем с самого начала. Основная суть данного шаблона: связывание объектов‑получателей в цепочку и передача запроса по ней.

Смотреть статью

Senior Java Developer

22 Oct, 15:00


🦾 Ты крутой джавист? Всегда есть куда расти.

Приходи повышать грейд на хардовый курс «Разработчик на Spring Framework» от OTUS.

👩‍💻 Авторская программа, с ней ты освоишь владение фреймворками Spring и технологиями вспомогательных проектов (Spring MVC, Spring Security, Spring Boot, Spring Reactive Stack, Spring 5). Получишь умение быстро проходить путь от идеи до production-grade.

🗓 6 ноября в 20:00 мск., пройдет бесплатный открытый урок курса, тема «Spring - разбор (не)стандартных вопросов интервью»

🔗 Ссылка на регистрацию: https://otus.pw/KYOu/

Будет интересно!

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Senior Java Developer

22 Oct, 14:39


Может ли имя класса не совпадать с именем файла?

Компилятор требует, чтобы в .java файле был не больше чем один публичный класс верхнего уровня, и чтобы его название совпадало с названием файла. Все специальные символы также должны быть в имени файла.

Protected и private классов верхнего уровня не бывает в принципе, а вот на package-protected это ограничение не распространяется. Это значит, что класс без модификатора доступа может иметь любое имя. Также это значит, что рядом с основным публичным классом файла (или вместо него) можно объявить любое количество других классов без модификатора доступа, с произвольными именами. Они будут доступны внутри всего пакета.

Так что ответ – может.

Senior Java Developer

22 Oct, 10:05


Amplicode учит вашу IDE говорить на языке Spring Boot! 

Amplicode – многофункциональный плагин для IntelliJ IDEA Community и Ultimate, упрощает и ускоряет работу с технологиями Spring Boot, JPA, Docker, Kafka, Liquibase, MapStruct и т.д.

Основные возможности

Навигация по проекту согласно архитектуре Spring приложения  
Создание объектов сразу в терминах фреймворка вместо Java классов: контроллеры, репозитории, сервисы, сущности, события, DTO, мапперы и т.д.
Палитра и инспектор, позволяющие видеть опции, доступные разработчику в текущем контексте
Умные инжекции, подсказки и исправление ошибок

Это малая часть того, на что способен Amplicode. В настоящий момент возможности доступны абсолютно бесплатно!

Сделано с любовью к разработчикам командой, создавшей суперпопулярный плагин JPA Buddy ❤️

Попробовать Amplicode

Посмотрите как Amplicode помогает разрабатывать на Spring Boot в IntelliJ IDEA! 

#реклама
О рекламодателе

Senior Java Developer

22 Oct, 07:19


Манипуляции с байт-кодом Java

В этой статье мы разберём, как добавить к файлу класса публичный атрибут. Когда загрузчик классов завершит загрузку модифицированного файла класса, мы увидим то поле, которое добавили вручную.

Смотреть статью

Senior Java Developer

21 Oct, 16:10


Какие логические операции и операторы вы знаете?

& : Логическое AND (И);
&& : Сокращённое AND;
| : Логическое OR (ИЛИ);
|| : Сокращённое OR;
^ : Логическое XOR (исключающее OR (ИЛИ));
! : Логическое унарное NOT (НЕ);
&= : AND с присваиванием;
|= : OR с присваиванием;
^= : XOR с присваиванием;
== : Равно;
!= : Не равно;
?: : Тернарный (троичный) условный оператор.

Senior Java Developer

21 Oct, 13:59


Шпаргалка по Spring для Java Junior уже доступна в бесплатной библиотеке от FAANG School.

Только в течение 24 часов вы можете получить доступ:

– Пошаговая RoadMap по Java
– Мануал по Docker. Основные команды и концепции
– Микросервисы. Вопросы с собеседований
– Шпаргалка с горячими клавишами JetBrains IDE. Ускоришь работу в 10 раз
– Desk setup. Подборка аксессуаров для комфортной работы
– Шпаргалка по Kafka
– Инструкция по работе с Git
– Подробный гайд, как найти работу в IT без опыта
– Подборка платформ с вакансиями для java-разработчиков

Из свежих пополнений – Инструкция по работе с Git (ключевой навык для любого разработчика!)

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

Senior Java Developer

21 Oct, 06:34


#вопросы_с_собеседований
Можно ли использовать строки в конструкции switch?

Да, начиная с Java 7 в операторе switch можно использовать строки, ранние версии Java не поддерживают этого. При этом:

• участвующие строки чувствительны к регистру;
• используется метод equals() для сравнения полученного значения со значениями case, поэтому во избежание NullPointerException стоит предусмотреть проверку на null.
• согласно документации, Java 7 для строк в switch, компилятор Java формирует более эффективный байткод для строк в конструкции switch, чем для сцепленных условий if-else.

Senior Java Developer

20 Oct, 04:39


⚙️ Более эффективная работа с коллекциями

Java предоставляет множество мощных инструментов для работы с коллекциями. Одним из них является Collectors.partitioningBy, который позволяет разделить элементы потока на две группы на основе заданного предиката.

➡️ Эта функция упрощает обработку и классификацию данных.

Senior Java Developer

19 Oct, 15:52


💪 Мощный инструмент в одной строке: Метод of()

Метод of() обеспечивает компактный способ создания неизменяемых коллекций.

🗣️ Этот метод является удобным и эффективным инструментом для создания коллекций с набором известных элементов.

Senior Java Developer

18 Oct, 15:10


➡️ Использование Local-Variable Type Inference

✔️ Функция Local-Variable Type Inference позволяет объявлять локальные переменные без явного указания их типа, что делает код более компактным и улучшает его читаемость

Senior Java Developer

18 Oct, 13:10


♨️ Анализировать множество показателей и не перегружать приложение?
С Java Flight Recorder – это легко.


Приглашаем вас на открытый урок «Обзор инструмента Java Flight Recorder».

🗓 22 октября в 20:00 МСК

🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Advanced» от OTUS.

JFR:
- Регистрирует множество событий внутри виртуальной машины Java
- Не ухудшает производительность
- Помогает детально разобраться в причинах сбоев и ошибок

Хотите освоить? - приходите на вебинар!

Спикер – Александр Царёв, техлид в Сбере.

🔗 Ссылка на регистрацию: https://otus.pw/gQih/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Senior Java Developer

18 Oct, 12:10


➡️ Мощь статических методов: Использование методов интерфейсов

✔️ В Java 8 была введена возможность определения статических методов в интерфейсах, что открыло новые возможности для создания удобных и мощных утилитарных функций прямо в интерфейсах.

🗣В интерфейсе ListUtils определен статический метод max, который находит максимальный элемент в коллекции.

🗣В методе main мы вызываем статический метод max из интерфейса ListUtils, передавая ему список чисел.

🗣Мы выводим найденное максимальное число на экран.

Senior Java Developer

18 Oct, 10:10


Работать ручным тестировщиком круто: можно проверять нестандартные сценарии или поставить себя на место реального пользователя. Но если хочется чего-то большего и ускорить работу над рутинными тест-кейсами — самое время автоматизировать часть задач. Не знаете программирование? Мы научим. 

Приходите в Яндекс Практикум на курс «Автоматизатор тестирования на Java» — за 5 месяцев освоите инструменты автоматизации, основы Java и научитесь покрывать автотестами веб-приложения и API.

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

Senior Java Developer

18 Oct, 06:23


✔️ Использование Flow API для реактивного программирования

Java 9 представила Flow API, который обеспечивает стандартный интерфейс для реализации реактивного программирования.

🗣️ Flow API позволяет создавать асинхронные, нелокальные потоки данных, упрощая работу с реактивными системами.

Senior Java Developer

17 Oct, 20:24


✔️ Использование Collectors.teeing для объединения потоков

Java 12 представила новый метод Collectors.teeing, который позволяет объединить результаты двух различных коллекторов в один итоговый результат.

🗣️ Эта возможность значительно упрощает обработку сложных потоков данных.

Senior Java Developer

17 Oct, 15:10


Yandex Cloud запустил сервис для ускорения разработки продуктов в облаке Yandex Serverless Integrations

Теперь разработчики смогут при минимальном написании кода автоматизировать различные процессы, например обработку онлайн-заказов и мониторинг систем безопасности.

Сделать это можно благодаря инструменту Yandex Workflows — он позволяет описать последовательность операций с помощью декларативного языка YAML. Сервис автоматически запустит эти процессы и проконтролирует их выполнение.

Помимо этого, Yandex Serverless Integrations включает в себя инструменты EventRouter для передачи событий между сервисами и API Gateway для создания шлюзов между внешними и облачными сервисами по спецификации OpenAPI 3.0.

Читайте подробнее в статье

Senior Java Developer

17 Oct, 13:09


➡️ Сила коллекций: Неизменяемые коллекции в Java

Java 10 ввела полезную возможность создания неизменяемых копий коллекций с помощью новых методов copyOf.

✔️ Эти методы предоставляют простой способ создания неизменяемых представлений существующих коллекций, улучшая безопасность и надежность кода.

Senior Java Developer

17 Oct, 11:08


♨️ Анализировать множество показателей и не перегружать приложение?
С Java Flight Recorder – это легко.


Приглашаем вас на открытый урок «Обзор инструмента Java Flight Recorder».

🗓 22 октября в 20:00 МСК

🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Advanced» от OTUS.

JFR:
- Регистрирует множество событий внутри виртуальной машины Java
- Не ухудшает производительность
- Помогает детально разобраться в причинах сбоев и ошибок

Хотите освоить? - приходите на вебинар!

Спикер – Александр Царёв, техлид в Сбере.

🔗 Ссылка на регистрацию: https://otus.pw/gQih/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Senior Java Developer

17 Oct, 10:18


➡️ FEST-Assert — мощная библиотека для упрощения тестирования

FEST-Assert — это библиотека для Java, которая значительно упрощает процесс написания тестов, делая их более выразительными и читаемыми. Она предоставляет удобные и цепочные методы для утверждений, позволяя разработчикам писать тесты, которые легко понимать и поддерживать.

🗣 Если вы хотите сделать свои тесты более читаемыми и выразительными, FEST-Assert — отличный выбор. Эта библиотека упрощает написание тестов и делает их более интуитивно понятными.

🔗 Ссылочка на доку

Senior Java Developer

16 Oct, 18:27


➡️ Использование метода Objects::isNull для удобной проверки на null

Начиная с Java 7, был добавлен метод Objects.isNull(), который позволяет более читаемо проверять объекты на null. Это полезно для улучшения читаемости кода, особенно когда нужно часто проверять переменные на null в сложных конструкциях.

• Objects.isNull() помогает сделать код более выразительным и упрощает проверку объектов, избегая громоздких условных операторов.

Senior Java Developer

16 Oct, 15:07


Хотите научиться разрабатывать парсеры pdf-файлов и создавать полезные приложения?

Приглашаем на открытый урок «Разработка парсера pdf-файла».

🗓 24 октября в 20:00 МСК

🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Professional»

На вебинаре разберем:

- как разработать парсер для выписки ВТБ банка в формате pdf;
- весь путь от идеи до практического применения;
- ответы на все возникающие вопросы.

⬇️ В результате урока вы получите практически полезное приложение с подробностями реализации.

Спикер Сергей Петрелевич — опытный Java/Kotlin-разработчик и преподаватель.

Все участники вебинара получат специальную цену на обучение!

🔗 Ссылка на регистрацию:https://otus.pw/UWDd/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Senior Java Developer

16 Oct, 14:57


➡️ Использование метода String::strip для удаления пробелов

Начиная с Java 11, был добавлен метод String.strip(), который удаляет пробелы в начале и в конце строки. В отличие от trim(), он корректно работает с символами пробела, определёнными в Unicode, что делает его более универсальным.

• String.strip() полезен для работы с текстовыми данными, где необходимо гарантированно удалить пробелы в соответствии с международными стандартами Unicode.

Этот метод также предоставляет аналоги для удаления только ведущих или завершающих пробелов: stripLeading() и stripTrailing().

Senior Java Developer

16 Oct, 13:18


⚡️ До конца регистрации на хакатон MORE.Tech от ВТБ остался всего 1 день! Успей подать заявку!

Когда: 11-26 октября 2024
Формат: гибридный (онлайн и офлайн) 
Призовой фонд: 1,5 млн рублей 

🔥 Хакатон подойдёт для тебя, если ты:
– Студент или выпускник технического вуза; 
– Backend / Frontend-разработчик;
– Аналитик;
– Проектный менеджер;
– UX/UI-дизайнер;
– Блокчейн-разработчик (Solidity);
– Специалист в области ИБ.

❗️Выбери свой трек:
1. Озеро данных: большие данные, обработка, хранение и анализ с использованием современных технологий.
2. NFT: система верифицированных достижений и сертификатов на основе блокчейн-токенов.
3. Vault: разработка безопасной системы хранения данных, аналог известного решения Vault от Hashicorp.

▶️ Успей подать заявку до 17 октября, 23:59 МСК по ссылке. 

#реклама
О рекламодателе

Senior Java Developer

16 Oct, 11:53


➡️ Использование метода Collectors.filtering() для фильтрации элементов при сборе в коллекцию

Начиная с Java 9, метод Collectors.filtering() позволяет фильтровать элементы потока перед их сбором в коллекцию. Это полезно, когда нужно собирать только определённые элементы, не прибегая к дополнительным фильтрациям на этапе потока.

• Collectors.filtering() делает код более лаконичным, предоставляя встроенный способ фильтрации элементов в процессе их коллекционирования.

Этот метод позволяет объединять фильтрацию и сбор данных в одну операцию.

Senior Java Developer

16 Oct, 09:51


Ищем автора эталонного кода! 💎

Если вы уверены, что вашему коду подходит звание «Эталонный», а вам — звание «Автор самого красивого кода», то приглашаем принять участие в Конкурсе красоты кода 2.0 и выиграть классные призы от Сбера: iPhone 16 и умную колонку SberBoom.

Опытные эксперты определят победителей в пяти категориях: Backend, Frontend, DevOps, AI и Mobile, — а награждение пройдёт на ключевом IT-событии HighLoad в Москве, 2 и 3 декабря.

Больше 40 участников прошлого конкурса стали частью команды Сбера. Возможно, следующим станете именно вы — переходите по ссылке и изучайте подробности!

Senior Java Developer

16 Oct, 07:21


➡️ JUnit 5 — современный инструмент для модульного тестирования

JUnit 5 — это обновлённая версия популярной библиотеки для тестирования, которая предоставляет мощный и гибкий API для написания модульных тестов. JUnit 5 поддерживает аннотации для удобного создания тестов, расширяемость через расширения, а также работу с различными тестовыми сценариями. Он также лучше интегрируется с современными инструментами и фреймворками.

🗣 JUnit 5 — идеальный выбор для проектов, где необходимо гибкое и масштабируемое тестирование с возможностью использования мощных расширений.

🔗 Ссылочка на доку

Senior Java Developer

15 Oct, 17:01


➡️ TestContainers — инструмент для тестирования с использованием контейнеров Docker

TestContainers — это библиотека, которая позволяет создавать тестовые окружения с использованием Docker-контейнеров. Это особенно полезно для тестирования взаимодействий с базами данных, сообщениями, веб-сервисами и другими инфраструктурными компонентами в изолированной среде.

TestContainers помогает запускать интеграционные тесты, используя реальные сервисы, работающие в контейнерах.

🗣 TestContainers — идеальный выбор для разработки интеграционных тестов, где нужно взаимодействовать с реальными сервисами.

🔗 Ссылочка на доку

Senior Java Developer

15 Oct, 15:00


Какая ошибка при использовании метрик – самая опасная ?

Когда мы «молимся» на одни показатели, но игнорируем другие: те, которые не укладываются в нашу картину успеха. Такой перекос опасен для компании: будут страдать и сотрудники, и результаты их работы.

Хотите узнать, как пользоваться метриками, чтобы улучшать процессы, а не просто давить на команду?

Приходите на открытый вебинар «Метрики для оценки работы и производительности команды»

Будет интересно: менеджерам в IT, scrum-мастерам, agile-тренерам, руководителям и тимлидам в отделах разработки.

Вы научитесь:
- усовершенствовать оценку производительности команд
- оптимизировать процессы разработки
- внедрять и развивать метрики в agile и scrum-командах
- соблюдать баланс метрик
- повышать производительность не в ущерб качеству

Спикер: Ирина Метансина – проект-менеджер, agile-практик, бизнес-аналитик с 10-летним опытом в проектном управлении.

17 октября, 19:00 МСК
Бесплатно

Записаться на событие: https://otus.pw/bJar/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576