seniorjavist | Unsorted

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

-

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

Subscribe to a channel

Senior Java Developer

Phaser

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

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

#для_продвинутых

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

Senior Java Developer

➡️ Пример Singleton в Java

🗣️ Этот код демонстрирует две реализации паттерна Singleton в Java, который гарантирует, что класс имеет только один экземпляр и предоставляет глобальную точку доступа к этому экземпляру.


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

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

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

Senior Java Developer

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

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

Поговорим на открытом вебинаре «Как обновить легаси-монолит и не поседеть?»

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

⌨️Вы узнаете:
- Как проводить аудит существующей системы и планировать миграцию
- О различных подходах к обновлению легаси-монолитов
- Об актуальных инструментах и методиках, которые упрощают процесс миграции
- О том, как снизить риски при переходе на новую архитектуру

👍Бонус! Всем участникам – скидка 5% на любой курс OTUS и бесплатный чек лист по переходу от монолита к микросервисам

13 августа
19:00 МСК
Бесплатно


Записаться на событие

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

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

Senior Java Developer

➡️ Создаем PDF-файл в Java

Этот код создает PDF-файл с использованием библиотеки iText в Java.

Внутри метода main создается новый PDF-документ, добавляются два параграфа: один с текстом "Hello Kiran" и второй с текущей датой и временем.

Затем документ сохраняется в файл C:\Test.pdf. Если возникает ошибка, она выводится в консоль.

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

Senior Java Developer

⚙️ Преобразование java.util.Date в java.sql.Date

Этот код преобразует дату из формата Java java.util.Date в формат java.sql.Date, который используется для работы с базами данных.

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

Senior Java Developer

#вопросы_с_собеседований
Какие преобразования называются нисходящими и восходящими?

Восходящее преобразование
(Upcasting) — это преобразование объекта дочернего класса в объект родительского класса. Преобразование может быть выполнено неявно, так как дочерний класс является подтипом родительского класса. Восходящее преобразование позволяет нам получить доступ к членам родительского класса, но не ко всем членам дочернего класса.

Нисходящее преобразование (Downcasting) — это преобразование объекта родительского класса в объект дочернего класса. Это преобразование не может быть выполнено неявно и требует явного указания типа. Нисходящее преобразование может быть опасным, так как оно может привести к ошибке ClassCastException, если типы не совместимы.

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

Senior Java Developer

Как разбить строку на подстроки по заданному разделителю?

Мы можем использовать метод split(String regex) для разделения строки на массив символов, используя в качестве разделителя регулярное выражение.

Метод split(String regex, int numOfStrings) является перегруженным методом для разделения строки на заданное количество строк. Мы можем использовать обратную черту для использования специальных символов регулярных выражений в качестве обычных символов.

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

Senior Java Developer

⚡️Шпаргалка по Maven

Maven — один из самых популярных и удобных инструментов для управления и сборки проектов на Java. Сохраняй и делись с друзьями!

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

Senior Java Developer

Что делать, когда уже выучил Java Core, но его не хватает для трудоустройства?

С ростом конкуренции на рынке труда становится все сложнее выделиться среди других ИТ-специалистов и получить оффер. К тому же большинство работодателей ожидают от кандидатов владения масштабным стеком технологий. 

Комплексная программа «Java-разработчик. Middle Developer» в гибридном формате с упором на практику с экспертом поможет превратить  ваши навыки Java в профессиональное мастерство!

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

✅ Старт курса — август 2024 г. Набор уже идет!
✅ Рассрочка без %. Онлайн-формат.
✅ Удобное расписание.

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

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

Senior Java Developer

RandomAccessFile

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

В этом примере мы создаем экземпляр RandomAccessFile с режимом rw, который позволяет нам читать и записывать данные в файл. Затем мы записываем строку "Hello, World!" в файл с помощью метода writeUTF(). После этого мы перемещаем указатель файла в начало с помощью метода seek(0) и читаем строку из файла с помощью метода readUTF(). Наконец, мы выводим прочитанную строку на экран и закрываем файл.

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

Senior Java Developer

ThreadDeath

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

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

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

#для_продвинутых

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

Senior Java Developer

Не знаете, как правильно реализовать аварийное восстановление (DR) и высокую доступность (HA)?

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

Присоединяйтесь к открытому вебинару «Связь DR и HA в современных архитектурных решениях» 14 августа в 20:00 мск и сделайте этот прыжок в будущее! Там мы обсудим все эти проблемы и даже больше, а также разберем возникающие вопросы.

👨‍💻🛠👨🏻‍💻 Урок будет полезен Backend- и Fullstack-разработчикам, DevOps-инженерам, архитекторам ПО, IT-менеджерам и руководителям проектов.

🔴 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cyTRf2

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

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

Senior Java Developer

Класс Unsafe

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

#для_продвинутых

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

Senior Java Developer

У вендора и производителя IT-инфраструктуры YADRO активны вакансии в разных направлениях для тех, кто кодит на С/С++ 🔍

1️⃣ Software Engineer C/C++
2️⃣ Разработчик ПО для цифровых систем связи
3️⃣ Senior C++ developer/Старший инженер-программист С++
4️⃣ Инженер по разработке ПО (C/C++ Embedded Linux)
5️⃣ Старший разработчик C++ (Linux/ OpenBMC)
6️⃣ Инженер по разработке встраиваемого ПО (Embedded Linux BSP)

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

Какие бенефиты предлагаются:

– достойная зарплата (размер обсуждается на собеседовании) и прозрачная система премий;
– обучение за счёт компании: учебный портал с курсами и лекциями от экспертов, дополнительное профессиональное обучение, изучение английского, участие в конференциях;
– возможность учиться у лучших специалистов индустрии, расти в рамках своей роли, а также участвовать во множестве различных проектов;
– личное участие в становлении процессов и продуктов, возможность увидеть результат своей работы;
– большое инженерное сообщество, которое постоянно развивается;
– гибридный или удалённый формат работы;
– ДМС со стоматологией с первого дня, консультации юристов, психологов, экспертов по ЗОЖ и управлению финансами;
– скидки для сотрудников, дополнительные day-off;
– комфортные офисы в Москве, Санкт-Петербурге, Нижнем Новгороде и Минске.

Скорее переходи по ссылкам и оставляй отклики!

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

Senior Java Developer

java.lang.reflect.Constructor

Класс java.lang.reflect.Constructor представляет собой конструктор класса Java. Он используется для создания экземпляров класса, предоставляя доступ к информации о конструкторе, а также возможность его вызова.

#для_продвинутых

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

Senior Java Developer

Single Responsibility Principle

Принцип единственной ответственности (Single Responsibility Principle, SRP) является одним из принципов SOLID, предложенных Робертом Мартином. Этот принцип гласит, что у класса должна быть только одна причина для изменения. Иными словами, класс должен выполнять только одну ответственность.

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

#для_продвинутых

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

Senior Java Developer

➡️ Отправка email с использованием JavaMail API

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

⚙️ Настраивается соединение с SMTP-сервером, создается сессия и сообщение. Устанавливаются адрес отправителя и получателей, заголовки, тема и текст сообщения.

✔️ Затем сообщение отправляется с помощью метода Transport.send.

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

Senior Java Developer

➡️ Скриншот в Java

🗣️ Этот код выполняет захват экрана и сохраняет его как изображение в формате PNG.


Получает размер экрана с помощью Toolkit.getDefaultToolkit().getScreenSize().

Создает прямоугольник, соответствующий размеру экрана.

Создает объект Robot для выполнения действий, связанных с автоматизацией, таких как захват экрана.

Захватывает изображение экрана в виде объекта BufferedImage.

Сохраняет захваченное изображение в файл с указанным именем и форматом PNG с помощью ImageIO.write().

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

Senior Java Developer

Бэкенд-разработчики, вышла новая версия CodeRun с задачами от разработчиков Яндекса и внешних экспертов

CodeRun — бесплатный онлайн-тренажер с кастомизацией сложности и большим каталогом задач. Здесь можно готовиться к техническим собеседованиям по программированию и заполнять пробелы в знаниях. А еще решать тематические и авторские подборки и задания с прошлых турниров и контестов.

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

2 сезон уже начался: решайте задачи и зарабатывайте баллы на ценные призы.

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

Senior Java Developer

😮 Добавлена новая база слитых курсов на 800ГБ:

Python:
/channel/+OnAzdnf-1mRjNjYy

Программирование:
/channel/+V2R5VLsH2igwMmU6

Frontend и Web:
/channel/+baoGxh-bG4Q5NmNi

Графика и дизайн:
/channel/+GrDwDo7c96s5ZTIy

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

Senior Java Developer

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

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

Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например: Outer.this.field.

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

Senior Java Developer

Начните обучение в магистратуре в Центральном университете уже на 3-м курсе бакалавриата!

Центральный университет — современный вуз, созданный при поддержке ведущих компаний России: Т-Банка, Авито и других.

Учебу реально совместить с последними курсами бакалавриата или действующей работой. Обучение занимает 20 часов в неделю в вечернее время в первый год, а занятия проводят в центре Москвы профессоры из МГУ, МФТИ, РЭШ и практики из индустрии. Обучение в университете построено по принципам ИТ-компаний, со средой, способствующей росту и развитию.

У каждого студента будет:
— личный ментор по траектории обучения;
— доступ к карьерному центру с коучами и консультантами;
— опыт работы в проектах 30+ компаний-партнеров уже во время обучения;
— диплом гособразца.

Участвуйте в онлайн-отборе, чтобы выиграть грант на обучение до 1,2 млн рублей. Больше подробностей про университет и конкурс грантов по ссылке!

erid:2VtzqxfHdBZ
Реклама, АНО ВО «Центральный университет», ИНН 774341802

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

Senior Java Developer

Правила переопределения метода Object.equals().

1. Использование оператора == для проверки, является ли аргумент ссылкой на указанный объект. Если является, возвращается true. Если сравниваемый объект == null, должно вернуться false.
2. Использование оператор instanceof и вызова метода getClass() для проверки, имеет ли аргумент правильный тип. Если не имеет, возвращается false.
3. Приведение аргумента к правильному типу. Поскольку эта операция следует за проверкой instanceof она гарантированно будет выполнена.
4. Обход всех значимых полей класса и проверка того, что значение поля в текущем объекте и значение того же поля в проверяемом на эквивалентность аргументе соответствуют друг другу. Если проверки для всех полей прошли успешно, возвращается результат true, в противном случае - false.

По окончанию переопределения метода equals() следует проверить: является ли порождаемое отношение эквивалентности рефлексивным, симметричным, транзитивным и непротиворечивым? Если ответ отрицательный, метод подлежит соответствующей правке.

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

Senior Java Developer

Определить и найти. Разработка алгоритма поиска изменений с Мap-ами и хешами

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

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

Senior Java Developer

ExecutorService

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

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

В этом примере создается ExecutorService с помощью фабричного метода Executors.newSingleThreadExecutor(). Затем запускается задача с помощью метода submit(). В конце работы ExecutorService завершается с помощью метода shutdown().

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

Senior Java Developer

Класс Throwable

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

Класс Throwable имеет следующие важные методы:

getMessage() — возвращает строковое сообщение, описывающее исключение.
printStackTrace() — выводит в стандартный поток ошибок подробную информацию об исключении, включая его тип, сообщение и стек вызовов.
Исключения делятся на две категории: ошибки и исключения. Ошибки являются необратимыми ситуациями, которые приводят к завершению работы программы. Исключения же являются обратимыми ситуациями, которые можно обработать и продолжить выполнение программы.

#для_продвинутых

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

Senior Java Developer

#вопросы_с_собеседований
Почему современные фреймворки используют в основном только unchecked exceptions?

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

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

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

Senior Java Developer

Класс MathContext

Класс MathContext используется для указания точности вычислений с плавающей запятой. Он определяет два параметра:

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

По умолчанию точность вычислений в Java равна 16 знакам после запятой, а режим округления — HALF_UP.

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

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

Senior Java Developer

EventListener

EventListener (слушатель событий) — это интерфейс, который позволяет объектам реагировать на события, происходящие в системе. Он используется для создания интерактивных приложений, где действия пользователя или изменения в системе должны вызывать определенные реакции.

#для_продвинутых

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

Senior Java Developer

Java-разработчики, QA-инженеры (backend) и системные аналитики, любите интересные задачи?
Попробуйте свои силы на Weekend Offer Нефинансовых сервисов — экосистемы на сайте Т-Банка, которая делает жизнь клиентов ярче. Здесь они выбирают билеты, продукты, топливо и отправляются в путешествия.

В команду ждут специалистов с опытом работы от 3 лет. Можете пройти собеседование за выходные, познакомиться с проектами, решить технические задачи и получить оценку от экспертов Т-Банка. Если справитесь — оффер получите на неделе.

Успейте подать заявку до 21 августа
erid:2Vtzqwh63Fy
Реклама. АО "ТБанк", ИНН 7710140679, лицензия ЦБ РФ № 2673

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