seniorjavist | Unsorted

Telegram-канал seniorjavist - Senior Java Developer

-

Изучаем Java. По вопросам сотрудничества: @seniorvladislav

Subscribe to a channel

Senior Java Developer

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

filter
() отфильтровывает записи, возвращая только записи, соответствующие условию;
skip() позволяет пропустить определённое количество элементов в начале;
distinct() возвращает стрим без дубликатов (для метода equals());
map() преобразует каждый элемент;
peek() возвращает тот же стрим, применяя к каждому элементу функцию;
limit() позволяет ограничить выборку определенным количеством первых элементов;
sorted() позволяет сортировать значения либо в натуральном порядке, либо задавая Comparator;
mapToInt(), mapToDouble(), mapToLong() - аналоги map() возвращающие стрим числовых примитивов;
flatMap(), flatMapToInt(), flatMapToDouble(), flatMapToLong() - похожи на map(), но могут создавать из одного элемента несколько.

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

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Как сборка мусора (Garbage Collection) не допускает нехватку памяти в приложении на Java?

Ответ:
Сборщик мусора (Garbage Collector) в Java — не волшебная пилюля от нехватки памяти в приложениях. Он просто очищает неиспользуемую память, когда объект выходит из области видимости и в нём отпадает потребность. Так что никакой гарантии, что сборка мусора предотвратит ошибки, связанные с нехваткой памяти, нет.

Читать полностью…

Senior Java Developer

Лямбда-выражения в Java — что это такое, зачем нужны и как выглядят

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

Читать полностью…

Senior Java Developer

Можно ли иметь много общедоступных классов в исходном файле Java?

Нет, у нас может быть только один общедоступный класс в исходном файле Java.

Читать полностью…

Senior Java Developer

Реально ли с нуля создать приложение без опыта в программировании?

Да! 🤩

На бесплатном курсе Нетологии «Основы разработки на Java» вы за 4 занятия познакомитесь с основами синтаксиса Java, одного из самых популярных языков программирования, и напишете на нём свой первый код.

Вас ждёт много практики:


☑️настроите Java и создадите консольное приложение для загрузки фото с сайта NASA;


☑️интегрируете это приложение в Telegram-бота;


☑️запустите приложение в облаке и создадите хранилище данных.

Курс стартует 13 февраля.

Регистрируйтесь, чтобы получить представление об устройстве Java и понять, подходит ли вам профессия разработчика

Реклама. ООО "Нетология". Erid LatgBSfuS

Читать полностью…

Senior Java Developer

На связи админ! Я тут перенес в телеграм бота обновленный на самых последних данных GPT4, который также способен работать с картинками. Если вы искали такого помощника, то переходите и тестируйте его бесплатно 1 день. Далее цена за месяц будет в 3 раза дешевле, чем на офицальном сайте. Пользуйтесь: @Gpt4_NeuroBot

Читать полностью…

Senior Java Developer

Какие основные ограничения действуют на статические и “переменные” методы?

Как я и сказал ранее, основное ограничение обычного метода в том, что всегда должен быть некоторый экземпляр, у которого данный метод будет вызываться. А вот статический метод этого не требует, но он и не может ссылаться на ссылку this — на элементы текущего объекта — поскольку текущего объекта для него не существует.

Читать полностью…

Senior Java Developer

Самый необычный канал про Java, подписывайся – /channel/java_secrets 📲

Будь в курсе последних тенденций, лучших практик и отраслевых секретов Java.

Канал Секреты Java поможет тебе улучшить свой путь разработки Java.

Читать полностью…

Senior Java Developer

Java-разработчики, вас зовут в Тинькофф

Участвуйте в Java Weekend Offer, если ваш опыт больше 3 лет. Пройдите все этапы собеседования за выходные и, если все понравится, получите оффер.

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

Оставьте заявку до 14 февраля

АО «Тинькофф Банк», ИНН 7710140679

Читать полностью…

Senior Java Developer

Перечислите принципы, которым вы следуете в многопоточном программировании?

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

• Всегда давайте значимые имена своим потокам. Процесс отладки, нахождения ошибок или отслеживание исключения в многопоточном коде – довольно сложная задача. OrderProcessor, QuoteProcessor или TradeProcessor намного информативнее, чем Thread1, Thread2 и Thread3. Имя должно отражать задачу, выполняемую данным потоком.
• Избегайте блокировок или старайтесь уменьшить масштабы синхронизации. Блокировка затратна, а переключение контекста ещё более ресурсоёмко. Пытайтесь избегать синхронизации и блокировки насколько это возможно, и организуйте критическую секцию в минимально необходимом объёме. Поэтому синхронизированный блок всегда предпочительней синхронизированного метода, дополнительно наделяя возможностью абсолютного контроля над масштабом блокировки.
• Обрабатывайте прерывание потока с особой тщательностью. Нет ничего хуже оставшегося заблокированным ресурса или системы в неконстистентном, по причине неподтверждённой транзакции, состоянии.
• Помните об обработке исключений. Выброшенные InterruptedException должны быть адекватно обработаны, а не просто подавлены. Так же не стоит пренебрегать Thread.UncaughtExceptionHandler. При использовании пула потоков необходимо помнить, что он зачастую просто «проглатывает» исключения. Так, если вы отправили на выполнение Runnable нужно обязательно поместить код выполнения задачи внутрь блока try-catch. Если в очередь пула помещается Callable, необходимо удостоверится, что результат выполнения всегда изымается помощью блокирующего get(), чтобы в случае возникновения существовала возможнотсь заново выбросить произошедшее исключение.
• Между синхронизаторами и wait() и notify() следует выбирать синхронизаторы. Во-первых, синхронизаторы, типа CountDownLatch, Semaphore, CyclicBarrier или Exchanger упрощают написание кода. Очень сложно реализовывать комплексный управляющий поток, используя wait() и notify(). Во-вторых, эти классы написаны и поддерживаются настоящими мастерами своего дела и есть шанс, что в последующих версиях JDK они будут оптимизированы изнутри или заменены более производительной внешней реализацией.
• Почти всегда использование Concurrent сollection выгоднее использования Synchronized сollection, т.к. первые более современны (используют все доступные на момент их написания новшества языка) и масштабируемы, чем их синхронизированые аналоги.

Читать полностью…

Senior Java Developer

Что такое «сессия»?

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

Читать полностью…

Senior Java Developer

Какие два класса не наследуются от Object?

Ответ:
Не ведитесь на провокации, нет таких классов: все классы прямо или через предков наследуются от класса Object!

Читать полностью…

Senior Java Developer

Статья, которая 100% будет полезна Java разработчикам, планирующим перейти на виртуальные потоки!

Говорим о важной фиче — виртуальных потоках Java 21. Именно благодаря ей синхронный код становится эффективным! Как это работает, какие есть подводные камни, и из-за чего ваше приложение может зависнуть: рассказали подробно и с наглядными примерами в материале.

Познакомиться с ним можно по ссылке прямо сейчас

Читать полностью…

Senior Java Developer

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

Нельзя, так как метод hashCode() не гарантирует уникальность значения для каждого объекта.

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

Читать полностью…

Senior Java Developer

new vs valueOf

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

Все оболочки, кроме чисел с плавающей точкой, от Byte до Long, имеют кэш. По умолчанию этот кэш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кэша. Значение из кэша достается в 3.5 раза быстрее, чем при использовании конструктора, плюс идёт экономия памяти.

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

Читать полностью…

Senior Java Developer

One Day Offer для Java-разработчиков ⚡

Приходите к нам, чтобы развивать успешный коммерческий продукт — HR-платформу Сбера!

«Пульс» автоматизирует весь HR-цикл компании и полезен каждому сотруднику, а не только HR-специалистам. Продукт разработан для компаний со штатом от 500 сотрудников. В работе мы используем Java/Kotlin (JDK 11/17), Spring Boot, Kafka, PostgreSQL, Docker, K8s и др.

Какие задачи будут в вашем планере:

•проектировать и разрабатывать компоненты SaaS-платформы в рамках микросервисной архитектуры

•разрабатывать unit и end-to-end тесты, участвовать в code review и фазах релизного процесса

•проводить анализ по улучшению производительности сервисов

Масштабные проекты и работа в крупнейшем IT-сообществе ждёт вас. Регистрируйтесь на One Day Offer

Читать полностью…

Senior Java Developer

❓ Как повысить эффективность работы с большим количество сетевых подключений в Java?

Узнайте на бесплатном практическом уроке «Java NIO» от OTUS и Александра Фисунова — Senior Kotlin Developer в SSP Software на проекте ВТБ. 

На вебинаре вы:
— узнаете, что такое Java NIO и чем он отличается от Java IO
— разберете полезные возможности Java NIO, которые сильно упрощают жизнь;
— изучите Java Core и получите ответы на свои вопросы. 

Встречаемся 15 февраля в 20:00 мск. Открытый урок пройдет в преддверии обновленного запуска курса «Java Developer. Professional».

➡️ Пройдите короткий тест, чтобы посетить бесплатный урок и получить запись: 

Пройти тест

Читать полностью…

Senior Java Developer

spring-projects/spring-framework

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

Читать полностью…

Senior Java Developer

Обработка исключений в Java с использованием сопоставления с образцом (pattern matching)

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

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

Читать полностью…

Senior Java Developer

Проверка четности или нечетности числа без использования оператора %

Хотя этот трюк не намного лучше, чем использование оператора %, но иногда он все-таки более эффективен (с большими числами).

Читать полностью…

Senior Java Developer

Метод trimToSize()

Метод trimToSize() класса ArrayList в Java обрезает емкость экземпляра ArrayList до текущего размера списка. Этот метод используется для обрезки экземпляра ArrayList по числу содержащихся в нем элементов.

Читать полностью…

Senior Java Developer

Полезные и неизвестные библиотеки Java

Из этой статьи вы узнаете о некоторых не очень известных, но полезных библиотеках Java.

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

Читать полностью…

Senior Java Developer

Ветвление switch

В Java существует два основных типа ветвлений: if...else и switch. Первый тип проверят некое условие и если оно верно — выполняет код.

В свою очередь switch получает на вход проверяемое значение и сравнивает его с перезаписанными данными. Если какой-то случай case совпадает, то JVM выполняет соответствующий код.

Отличительной особенностью switch есть то, что все его условия статические и компилируются сразу в байткод.

#для_начинающих

Читать полностью…

Senior Java Developer

Метод compareTo()

Метод compareTo() используется для сравнения двух объектов. Обычно он применяется к объектам, реализующим интерфейс Comparable, чтобы определить их относительный порядок. Вот как обычно выглядит сигнатура метода compareTo():

int compareTo(T obj)


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

— Отрицательное число указывает на то, что текущий объект меньше, чем объект obj.
— Ноль указывает на то, что текущий объект равен объекту obj.
— Положительное число указывает на то, что текущий объект больше, чем объект obj.

#для_начинающих

Читать полностью…

Senior Java Developer

6 февраля в 18:00 состоится открытый урок «Java Concurrency на практике», где научим:

• Эффективно использовать коллекции в многопоточном окружении.
• Применять различные синхронизаторы для управления потоками.
• Анализировать thread dump'ы для выявления и устранения проблем многопоточности.

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

Ведущий – Роман Оборин, Senior Software Engineer.
Опыт программирования на Java — 6 лет.
Коммерческий опыт — 10 лет.
Ex-разработчик в Tesco, BNP paribas, Natera.

Это первая лекция курса «Senior Java Developer» от HeadBridge.
Желающие могут присоединиться к действующим студентам, оценить качество и уровень преподаваемого материала, задать интересующие вопросы.

Больше – в прямом эфире!
Регистрация по ссылке: https://clck.ru/38YYU5

После открытого урока будет последняя возможность поступить на обучение в первом потоке 2024 года. Студентам, прошедшим аттестацию, гарантируем выход на реальное собеседование для Senior разработчика с ЗП от 300.000₽.

Стоимость индивидуальна и зависит от необходимых знаний. Доступна оплата в рассрочку.

Реклама. ООО "Платформа непрерывного обучения" ИНН 7839405924
erid: 2VtzqvA5thM

Читать полностью…

Senior Java Developer

🧑‍💻 Этичный Хакер — канал, в котором вас научат кибербезопасности и хакингу с нуля.

OSINT: руководство для самых маленьких
Социальная инженерия. 10 человеческих слабостей, которые помогут управлять людьми
Пентест сайта. 12 шагов
Интервью с владельцем группировки KILLNET (скоро выйдет)

Присоединяйся к крупнейшему в СНГ комьюнити хакеров — /channel/hack_less

Читать полностью…

Senior Java Developer

Получение обратного массива

Используем библиотеку Apache Commons Lang.

Библиотека Apache Commons Lang представляет собой набор служебных классов для упрощения работы с классами пакета java.lang.*.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Назовите основные свойства транзакции.

Атомарность (atomicity)
гарантирует, что никакая транзакция не будет зафиксирована в системе частично. Будут либо выполнены все её подоперации, либо не выполнено ни одной.

Согласованность (consistency). Транзакция, достигающая своего нормального завершения и, тем самым, фиксирующая свои результаты, сохраняет согласованность базы данных.

Изолированность (isolation). Во время выполнения транзакции параллельные транзакции не должны оказывать влияние на её результат.

Долговечность (durability). Независимо от проблем на нижних уровнях (к примеру, обесточивание системы или сбои в оборудовании) изменения, сделанные успешно завершённой транзакцией, должны остаться сохранёнными после возвращения системы в работу.

Читать полностью…

Senior Java Developer

Камерный митап для мобильных разработчиков, где каждый может предложить свой кейс для обсуждения по трем трекам: iOS, Android, Flutter.

Участники митапа — техлиды, руководители разработки и ведущие мобильные разработчики из команд Яндекс Go и Яндекс Про. В завершении вечера afterparty — нетворкинг, настолки, вкусная еда и напитки.

Место встречи: Москва-Сити, башня «Око»
Дата и время: 15 февраля, 18:30

Бесплатно. Количество мест ограничено. Регистрация обязательна

Подробнее

Реклама. ООО "ЯНДЕКС.ТАКСИ". ИНН 7704340310.

Читать полностью…

Senior Java Developer

Какие подклассы класса Writer вы знаете, для чего они предназначены?

Writer — абстрактный класс, описывающий символьный вывод;
BufferedWriter — буферизованный выходной символьный поток;
CharArrayWriter — выходной поток, который пишет в символьный массив;
FileWriter — выходной поток, пишущий в файл;
FilterWriter — абстрактный класс, предоставляющий интерфейс для классов-надстроек;
OutputStreamWriter — выходной поток, транслирующий байты в символы;
PipedWriter — выходной канал;
PrintWriter — выходной поток символов, включающий методы print() и println();
StringWriter — выходной поток, пишущий в строку;

Читать полностью…
Subscribe to a channel