Senior Java Developer

Адрес канала: @seniorjavist
Категории: Образование
Язык: Русский
Количество подписчиков: 21.16K
Описание канала:

№ 4931127152
Изучаем Java.
По вопросам сотрудничества: @adv_and_pr
Канал на бирже: https://telega.in/c/seniorjavist

Рейтинги и Отзывы

3.50

2 отзыва

Оценить канал seniorjavist и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

0

3 звезд

0

2 звезд

1

1 звезд

0


Последние сообщения

14 янв
Класс-оболочка и тип данных

В приведенном выше примере второй оператор печати не будет отображать значение true, поскольку сравниваются ссылки на объекты класса-оболочки, а не их значения.
919 views19:27
Подробнее
Поделиться:
Открыть/Комментировать
13 янв
Что такое ключевое слово final и где его использовать?

Ключевое слово final можно использовать для переменных, методов и классов.
1. final переменную нельзя переназначить на другой объект.
2. final класс бесплоден, у него не может быть наследников.
3. final метод не может быть переопределен у предка.

Пробежали по верхам, теперь обсудим более подробно final переменные. Java даёт нам два способа создать переменную и присвоить ей некоторое значение:
1. Можно объявить переменную и инициализировать ее позже.
2. Можно объявить переменную и сразу же назначить ее.
Пример с использованием final переменной для этих случаев приведен выше на картинке.
1.61K views18:46
Подробнее
Поделиться:
Открыть/Комментировать
12 янв
#вопросы_с_собеседований
Объясните выражение System.out::println.

Данное выражение иллюстрирует механизм instance method reference: передачи ссылки на метод println() статического поля out класса System.
1.88K views20:43
Подробнее
Поделиться:
Открыть/Комментировать
11 янв
Захват координат курсора

Чтобы захватить события мыши, необходимо реализовать интерфейс MouseMotionListener. Когда курсор попадает в определенную область, срабатывает обработчик события mouseMoved, из которого можно получить точные координаты.
2.26K views19:56
Подробнее
Поделиться:
Открыть/Комментировать
10 янв
#вопросы_с_собеседований
К каким конструкциям Java применим модификатор static?

к полям;
к методам;
к вложенным классам;
к статическим блокам инициализации;
к членам секции import.
2.38K views20:40
Подробнее
Поделиться:
Открыть/Комментировать
9 янв
Метод concat()

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

Проще говоря метод concat() в Java объединяет строки, путем добавления одной строки в конец к другой.
2.71K views19:34
Подробнее
Поделиться:
Открыть/Комментировать
8 янв
#вопросы_с_собеседований
Чем различаются Enumeration и Iterator?

Хотя оба интерфейса и предназначены для обхода коллекций между ними имеются существенные различия:
• с помощью Enumeration нельзя добавлять/удалять элементы;
• в Iterator исправлены имена методов для повышения читаемости кода (Enumeration.hasMoreElements() соответствует Iterator.hasNеxt(), Enumeration.nextElement() соответствует Iterator.nеxt() и т.д);
• Enumeration присутствуют в устаревших классах, таких как Vector/Stack, тогда как Iterator есть во всех современных классах-коллекциях.
2.69K views20:26
Подробнее
Поделиться:
Открыть/Комментировать
7 янв
#вопросы_с_собеседований
Что такое «интеграционное тестирование»?

Интеграционное тестирование (integration testing) — это тестирование, проверяющие работоспособность двух или более модулей системы в совокупности — то есть нескольких объектов как единого блока. В тестах взаимодействия же тестируется конкретный, определенный объект и то, как именно он взаимодействует с внешними зависимостями.
2.74K views20:40
Подробнее
Поделиться:
Открыть/Комментировать
6 янв
Программа для преобразования десятичных чисел в шестнадцатеричные на Java

Воспользуемся методом Integer.toString().

Time complexity: O(N)
Auxiliary Space: O(1)
2.89K views20:33
Подробнее
Поделиться:
Открыть/Комментировать
4 янв
Чем отличается LongAdder от AtomicLong?

LongAdder — это класс, введенный в Java 8, который представляет собой альтернативу классу AtomicLong для выполнения атомарных операций над переменными типа long. Он предоставляет более высокую производительность в некоторых сценариях, чем AtomicLong, особенно в случаях, когда множество потоков изменяют одну и ту же переменную.

Основные отличия LongAdder от AtomicLong:

LongAdder разделяет внутренние счетчики между потоками, что позволяет потокам увеличивать разные счетчики и объединять их при необходимости. Это уменьшает конкуренцию между потоками, что может повысить производительность.
— Когда несколько потоков одновременно увеличивают LongAdder, он автоматически разделяет изменения между внутренними счетчиками, таким образом, уменьшая ожидание блокировки.
— Для получения общей суммы всех внутренних счетчиков LongAdder предоставляет метод sum(), который объединяет значения счетчиков.

#для_продвинутых
3.37K views14:38
Подробнее
Поделиться:
Открыть/Комментировать
31 дек 2025
Друзья, с наступающим Новым годом!
Спасибо, что вы с нами.

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

Пусть 2026 принесёт вам спокойные релизы без ночных авралов, понятные ТЗ, сильные команды и проекты, которыми реально хочется гордиться. Пусть баги ловятся быстро, деплой проходит с первого раза, а нейросети становятся не магией, а надёжным инструментом в вашем рабочем наборе
Счастья, здоровья и стабильного интернета — увидимся в новом году!
3.34K views18:10
Подробнее
Поделиться:
Открыть/Комментировать
30 дек 2025
Инкапсуляция

Инкапсуляция
- это принцип ООП, который заключается в сокрытии внутреннего представления класса от внешнего мира. Для этого используются модификаторы доступа: private, protected, public.

Обычно поля класса делаются private или protected, а методы - public. Это позволяет скрыть реализацию класса и предоставить к ней контролируемый доступ через public методы.

При запуске этой программы на выходе мы получим:
John 0

#это_база
3.39K views20:39
Подробнее
Поделиться:
Открыть/Комментировать
29 дек 2025
Конечный автомат

Конечный автомат (Finite State Machine, FSM) — это модель вычислений, которая состоит из набора состояний, переходов между состояниями и действий, выполняемых при переходе из одного состояния в другое.

Для простого примера можно использовать светофор. Светофор может иметь три состояния: красный, желтый и зеленый. Когда светофор находится в состоянии красный, машины должны останавливаться, когда он находится в состоянии желтый, машины должны готовиться к остановке, а когда светофор находится в состоянии зеленый, машины могут двигаться.

#для_продвинутых
3.47K views20:41
Подробнее
Поделиться:
Открыть/Комментировать
28 дек 2025
Bit Set

BitSet — это класс, предназначенный для работы с наборами битов. Он предоставляет удобные методы для установки, сброса, получения и манипулирования битами в наборе. Этот класс полезен, когда вам нужно хранить и обрабатывать большое количество булевых значений (true/false) или флагов, используя минимальное количество памяти.

#для_начинающих
1.58K views20:43
Подробнее
Поделиться:
Открыть/Комментировать
27 дек 2025
Тип Optional

Тип Optional используется для представления возможности отсутствия значения. Он обертывает другой тип данных и может содержать либо значение этого типа, либо быть пустым (null).

Этот код создает Optional объект, который может содержать строку. Если строка доступна, она будет возвращена; в противном случае будет возвращено значение "Default Value".

Использование Optional способствует более чистому и безопасному коду при работе с возможно отсутствующими значениями.

#для_начинающих
1.9K views20:39
Подробнее
Поделиться:
Открыть/Комментировать
26 дек 2025
#вопросы_с_собеседований
Как поделиться данными между двумя потоками?

Данными между потоками возможно делиться, используя общий объект или параллельные структуры данных, например BlockingQueue.
1.98K views20:47
Подробнее
Поделиться:
Открыть/Комментировать
26 дек 2025
Пора отвлечься от хотфиксов на приятные хлопоты

Время забирать подарки — годовые подписки на Облако Mail и VK Музыку.

Чтобы посоревноваться за подарки:
подпишитесь на наш канал @backendhubvk
нажмите кнопку «Участвовать»
почитайте по ссылке информацию об организаторе, правилах и призах
дождитесь 30 декабря — в этом посте мы выберем случайным образом 6 победителей
2.08K views11:22
Подробнее
Поделиться:
Открыть/Комментировать
25 дек 2025
Реверс массива

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

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

#для_продвинутых
2.08K views13:06
Подробнее
Поделиться:
Открыть/Комментировать
24 дек 2025
Аннотация Entity

Аннотация Entity используется для обозначения класса как entity-класса в Java Persistence API (JPA). Entity-класс представляет собой объект, который может быть сохранен в базе данных.

Обычно entity-класс представляет таблицу в базе данных, а каждый экземпляр entity-класса представляет строку в этой таблице.

В этом примере мы определяем entity-класс Student, который представляет студента, а также используем аннотации Id и GeneratedValue для определения первичного ключа этого класса.
Этот класс имеет три поля: id, name и age, которые представляют идентификатор, имя и возраст студента соответственно. Затем определяем конструктор без аргументов (так как он требуется JPA) и конструктор с аргументами для удобства создания экземпляров этого класса.

После определения этого класса мы можем использовать его для сохранения и извлечения данных о студентах из базы данных с помощью JPA.
2.11K views18:55
Подробнее
Поделиться:
Открыть/Комментировать
23 дек 2025
newSingleThreadExecutor()

Метод newSingleThreadExecutor() класса Executors создает исполнитель, который использует единственный рабочий поток, работающий с неограниченной очередью. Задачи гарантированно выполняются последовательно и в том порядке, в котором они были добавлены.

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

В этом примере мы создаем исполнителя с помощью метода newSingleThreadExecutor() и добавляем три задачи с помощью метода submit(). Затем мы вызываем метод shutdown() для завершения работы исполнителя.
2.12K views20:14
Подробнее
Поделиться:
Открыть/Комментировать
23 дек 2025
Road To Highload: Крупноблочная архитектура

В видеопроекте Road to Highload Сергей Трегуб, руководитель бэкенд‑разработки продуктовых сервисов Яндекс 360, рассказывает, как крупноблочная архитектура упрощает коммуникацию между разными командами разработки и помогает быстро принимать решения: в каком компоненте разместить новую бизнес‑логику и какие дополнительные блоки потребуются для её поддержки.

Road to Highload — это цикл видеоматериалов от Яндекс 360 о том, как строятся системы, которыми ежедневно пользуются миллионы людей и тысячи компаний. Здесь обсуждаются high‑load и отказоустойчивость не по учебникам, а на основе многолетнего практического опыта.

Смотрите проект, чтобы узнать, как создаются одни из крупнейших облачных сервисов в России:

Сайт проекта
VK Видео
Ютуб

Реклама. ООО «Яндекс». ИНН 7736207543
2.17K views10:53
Подробнее
Поделиться:
Открыть/Комментировать
22 дек 2025
#вопросы_с_собеседований
Что такое Static import?

Статический импорт позволяет использовать статические члены (поля и методы), которые были определены в классе как public static, без указания класса, в котором было определено поле. Это удобно, когда вам нужно использовать статические члены класса многократно. Статический импорт также помогает избежать создания константного интерфейса, что считается неправильным использованием интерфейсов.

Константный интерфейс — это интерфейс, который определяет только константы, а затем класс реализует этот интерфейс для доступа к константам.

*Однако, если два статических члена с одинаковым именем импортируются из разных классов, компилятор выдаст ошибку, так как он не сможет определить, какой член использовать.
2.24K views19:17
Подробнее
Поделиться:
Открыть/Комментировать
21 дек 2025
ThreadDeath

ThreadDeath представляет собой исключение, которое указывает на то, что поток должен быть остановлен. Это исключение является подклассом Error, а не Exception, потому что оно является нормальным явлением и не должно обрабатываться в коде приложения.

Когда поток получает исключение ThreadDeath, он немедленно завершается. Если поток был заблокирован на мониторе, он сначала разблокирует монитор.

Важно отметить, что исключение ThreadDeath не может быть обработано с помощью блока try-catch. Если поток получает исключение ThreadDeath, оно просто игнорируется и поток завершается.

#для_продвинутых
2.41K views18:25
Подробнее
Поделиться:
Открыть/Комментировать
20 дек 2025
ExecutorService

ExecutorService — это API JDK, который упрощает запуск задач в асинхронном режиме. В общем смысле, ExecutorService автоматически предоставляет пул потоков и API для назначения задач.

Лучший вариант использования ExecutorService — это обработка независимых задач, таких как транзакции или запросы по схеме "один поток для одной задачи".

В этом примере создается ExecutorService с помощью фабричного метода Executors.newSingleThreadExecutor(). Затем запускается задача с помощью метода submit(). В конце работы ExecutorService завершается с помощью метода shutdown().
2.41K views16:10
Подробнее
Поделиться:
Открыть/Комментировать
19 дек 2025
Callable

Callable — это интерфейс из пакета java.util.concurrent, который представляет собой задачу, которую можно выполнить и получить результат, а также обработать исключение, если оно произошло во время выполнения задачи. Он аналогичен интерфейсу Runnable, но в отличие от Runnable, Callable может возвращать результат выполнения и бросать проверяемые исключения.

#для_продвинутых
2.64K views19:27
Подробнее
Поделиться:
Открыть/Комментировать
18 дек 2025
#вопросы_с_собеседований
Можно ли переопределить статический или приватный метод в Java?

Приватный метод недоступен вне класса, поэтому он не будет переопределен подклассом. Следовательно, его нельзя переопределить. Точно так же статический метод не может быть переопределен, потому что если мы создадим статические методы с одним и тем же именем метода и сигнатурой как в базовом, так и в производном классе, производный класс скроет методы в базовом классе. Это известно как сокрытие метода.
2.82K views18:55
Подробнее
Поделиться:
Открыть/Комментировать
17 дек 2025
Контейнер Optional

Optional — это контейнер, который может содержать какое-то значение или не содержать ничего.
Он используется для обозначения отсутствия значения вместо null. Это позволяет избежать ошибок NullPointerException.

Optional появился в Java 8. Он представлен классом java.util.Optional.
Чтобы создать экземпляр Optional, используются статические методы:
— empty() для пустого Optional.
— of() для Optional с заданным значением.

Для получения значения из Optional используются методы get(), или orElse() с указанием значения по умолчанию. Также есть методы фильтрации значений, например filter(), map() и flatMap().

#это_база
2.93K views18:41
Подробнее
Поделиться:
Открыть/Комментировать
17 дек 2025
Открытый урок «Тестирование Spring приложений. Интеграционные тесты с контекстом. Тестирование слоя репозиториев и сервисов».

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

Интеграционные тесты в Spring: тестовый контекст, репозитории (JDBC/JPA), сервисы и транзакции.

На вебинаре:
Особенности интеграционных тестов с поднятием контекста Spring.
Тестирование слоя репозиториев: JDBC и JPA.
Работа с транзакциями на сервисном слое и подходы к тестированию.

Кому будет полезно:
Backend-разработчикам на Java, начинающим осваивать тестирование Spring-приложений.

Что вы получите:
Разберётесь в базе интеграционного тестирования со Spring-контекстом и сможете написать простые тесты для репозиториев и сервисов.

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

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
2.55K views09:51
Подробнее
Поделиться:
Открыть/Комментировать
16 дек 2025
Метод isEmpty()

Метод isEmpty() позволяет проверить, пустая ли коллекция или строка.
Он определен в интерфейсе java.util.Collection, поэтому доступен для всех коллекций, таких как ArrayList, HashSet и других. Также есть отдельная реализация для класса String.

Метод возвращает значение true, если коллекция или строка не содержат элементов, и false — если в коллекции или строке есть хотя бы один элемент.
Это позволяет упростить проверку на пустоту, вместо сравнения размера коллекции с нулем.

#это_база
2.49K views18:19
Подробнее
Поделиться:
Открыть/Комментировать
15 дек 2025
ConcurrentHashMap

ConcurrentHashMap — это реализация интерфейса Map, оптимизированная для многопоточной работы.
Она позволяет эффективно выполнять операции чтения и записи данных из нескольких потоков без необходимости явной блокировки всей структуры данных.

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

Особенно полезна, когда количество операций чтения значительно превышает количество операций записи.
2.7K views17:46
Подробнее
Поделиться:
Открыть/Комментировать