seniorjavist | Unsorted

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

-

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

Subscribe to a channel

Senior Java Developer

🔥В OTUS продолжается набор в группу курса Kotlin Backend Developer Professional. Это отличная возможность расширить свои возможности разработки на Kotlin!

18 октября в 19:00 мск. приглашаем на бесплатный урок «Возможности Kotlin для создания DSL на примере JsonBuilder».

⚡️На занятии:

- рассмотрим общую теорию о DSL: назначение, особенности, практика;
- попрактикуемся в создание DSL на примере JsonBuilder;
- рассмотрим возможности Kotlin, полезные для создания DSL;
- узнаем, как создавать собственные DSL и применять их при написании приложения;
- познакомимся с замыканиями и extension-методами.
Отправьте заявку, чтобы записаться на урок и получить спец. условия при поступлении в группу.

👉Регистрация https://otus.pw/797v/

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

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8K2Mns

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

Senior Java Developer

Как Greenplum помогает аналитикам и архитекторам?

Эта БД используется для сложной аналитики по большим объёмам данных. Она быстро выполняет сложные аналитические запросы благодаря MPP-архитектуре и сочетает в себе возможность масштабируемости на десятки терабайт, строгую консистентность данных, ANSI SQL и джойны.
Изучите эту технологию на бесплатном открытом уроке «Greenplum в высоконагруженных системах» от OTUS.

На эфире разберем:
- Обзор аналитических возможностей Greenplum
- Настройку Greenplum для высоконагруженных систем
- Пример с использованием Greenplum в реальной системе

🔥 Преподаватель Дмитрий Золотов – Flutter+Kotlin Developer в Yandex.

📅 Занятие пройдёт 16 октября в 20:00 мск в рамках курса «Highload Architect».

🌐 Зарегистрируйтесь на событие прямо сейчас: https://otus.pw/fa4HD/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8K1MM5

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

Senior Java Developer

Опрос для опытных ИТ-специалистов.

Поделитесь мнением об ИТ-работодателях. Напишите, что вам нравится, а что — нет. Так компании смогут исправить ошибки, улучшить условия и присылать офферы, на которые хочется соглашаться.

Посмотрите, это займет не больше 10 минут

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

Senior Java Developer

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

Залетай, тут уже угарают над твоим говнокодом: /channel/+H1tY9ytqhP1iNTk6

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

Senior Java Developer

Интерфейс UnaryOperator

Интерфейс UnaryOperator предназначен для представления функций, которые принимают один аргумент и возвращают результат того же типа, что и аргумент.
Он является специализированным функциональным интерфейсом, входящим в пакет java.util.function.

UnaryOperator часто используется в stream API для применения функций к элементам потока.

В примере UnaryOperator используется для преобразования строк в верхний регистр с помощью метода map().

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

Senior Java Developer

shutdown hook

Shutdown hook позволяет приложению выполнить некоторый код перед завершением приложения.

Для создания hook нужно создать объект класса Thread и передать его в метод addShutdownHook() класса Runtime.
Когда приложение завершается, все заданные hook выполнятся последовательно.

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

#это_база

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

Senior Java Developer

Что значит быть дата-инженером?

Присоединяйся к бесплатной Q&A сессии:
Расскажем
, что такое быть дата-инженером, как им стать, и как развиваться в профессии.

Все в формете Q&A, задавай любые вопросы опытным дата-инженерам. Помни, самый глупый вопрос – незаданный 😉

Кому будет полезно:
junior DE - если только начинаешь свой путь дата-инженера, сможешь задать вопрос опытным коллегам
DS и DA - сможешь узнать больше о типах задач, с которыми работают дата-инженеры
разработчики - если хочешь сменить профессию, попробовать свои силы в данных, то вебинар поможет разобраться с вектором развития
техлиды и менеджеры - вебинар поможет определить направление развития вашей дата-команды

Бонусы зарегистрированным: разыграем 2 бесплатных места на поток «Data-Engineer 13.0». Дополнительно два счастливчик получат скидку 50%.

Спикеры:
🕶 Игорь Мосягин, Klarna
🧢 Алексей Ница, NewProLab


📅Дата: 10 октября 2023
🕗Время: 20:00 по МСК
🔵Место: YouTube


🔗[Записаться на бесплатный вебинар]

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

Senior Java Developer

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

В Java есть несколько режимов доступа к файлам:

Read (чтение): открывает файл для чтения, позволяет читать данные из файла.

Write (запись): открывает файл для записи, позволяет записывать данные в файл. При этом старое содержимое файла удаляется.

Append (добавление): открывает файл для записи, но данные добавляются в конец файла, старое содержимое сохраняется.

RandomAccess (произвольный доступ): позволяет читать и записывать данные в произвольном месте в файле.

Для указания режима доступа используются константы из класса File:
File.READ, File.WRITE, File.APPEND и т.д.

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

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

Senior Java Developer

ServletRequest

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

ServletRequest позволяет сервлету взаимодействовать с клиентом вне зависимости от деталей реализации или протокола запроса.

В этом примере из запроса получается параметр "name" с помощью метода getParameter(). Затем это значение используется для вывода приветствия в ответ клиенту.

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

Senior Java Developer

Митапы от Сбера для IT-сообщества — это всегда интересно, весело и очень полезно. Следующий, кстати, пройдёт уже 17 октября в Рязани 👨💻

В этот раз банк приглашает специалистов на IT Talk by Sber, чтобы поговорить о трёх вехах разработки: frontend, backend и ML. Ведущие эксперты расскажут:

✔️ Чем может быть полезен GraalVM и как его эффективно применяют в платёжном шлюзе Сбера? Спикер — главный разработчик платёжного шлюза Сбера - Антон Ленок.

✔️ Системы сборки: в погоне за скоростью. Спикер – руководитель направления frontend–разработки в команде Брокерского бизнеса - Василий Маркитан.

✔️ Как работает GigaChat и где его использовать? Спикер — ML-инженер департамента SberDevices — Эль-Айясс Дани Валид.

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

Скорее регистрируйтесь по ссылке. Встречаемся 17 октября в 18:30 в лофт-пространстве «Свобода» по адресу: Соборная площадь, 21 💚

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

Senior Java Developer

Привет! На связи организатор IT-конференций по разным направлениям разработки Podlodka Crew

♨️ Приглашаем посетить третий сезон Podlodka Java Crew. Окунёмся в масштабную и важную для каждого Java-разработчика тему «Работа с базой данных» и рассмотрим её со всех возможных сторон. Ведь какой бэкенд без SQL?

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

🔸 Поговорим про паттерны обработки данных - стриминг, батчи, cdc;
🔸 Узнаем, как не наступить на грабли сочетая Debezium с Postgres;
🔸 Разберёмся в тонкостях CRUD-сервисов: Spring, Jooq, PostgreSQL, Liquibase, Testcontainers
🔸 Сравним использование NoSQL и SQL баз данных на конкретных примерах.

🤓 А ещё в программе — традиционный бар на тему «Интеграция через базу — не антипаттерн» — обсудим и поделимся опытом.

🤑 Для ранних пташек — низкие цены! Посмотреть программу и купить билет со скидкой можно на сайте: https://podlodka.io/javacrew

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

Senior Java Developer

Community Day на Joker 2023 🔥

Joker 2023 совсем скоро, и у вас еще есть возможность купить билет со скидкой по промокоду SENIORJAVIST.

Но если вы не готовы купить билет на конференцию, то присоединяйтесь к бесплатному Community Day 10 октября.

Этот день такой же насыщенный, как и другие дни конференции:
✔ Доклады о производительности, эволюции Java, архитектуре и Machine Learning.
✔ Воркшоп «Пишем на Idiomatic Kotlin».
✔ Дискуссии со спикерами и участниками после докладов.
✔ Чат с коллегами со всего мира.

➡️ Для участия достаточно зарегистрироваться.

Увидимся на Joker 2023!

Реклама, ООО «Джуг Ру Груп», ИНН 7801341446, erid 2RanykjNUz4

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

Senior Java Developer

DoubleAdder

DoubleAdder — это класс из пакета java.util.concurrent, предназначенный для эффективного параллельного суммирования значений типа double.

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

Преимущества:
— Высокая скорость за счет разделения на сегменты и отсутствия блокировок.
— Минимизация конфликтов между потоками при обновлении.
— Хорошо масштабируется на большом количестве CPU ядер.

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

Senior Java Developer

Метод delete() класса StringBuffer

Метод delete() в классе StringBuffer используется для удаления символов из строки. Он удаляет символы из строки, на которой он был вызван.

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

#это_база

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

Senior Java Developer

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

Ближайшее мероприятие:

• 7-8 октября — Fast Track для С++ разработчиков, офер за 2 дня в команды Фудтеха и Яндекс Маркета.

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

Реклама. ООО "Яндекс". erid:2VtzqwWoJws

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

Senior Java Developer

Приоритеты потоков

Приоритеты потоков используются для определения того, как операционная система должна разделять вычислительные ресурсы между потоками. Приоритеты потоков представлены целыми числами от 1 до 10, где 1 — минимальный приоритет, а 10 — максимальный приоритет. По умолчанию все потоки имеют нормальный приоритет (5).

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

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

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

Senior Java Developer

Маршалинг

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

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

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

Senior Java Developer

FixedThemeResolver

FixedThemeResolver — это класс из пакета Spring Framework, который используется для установки фиксированной темы (или стиля) для веб-приложения. Тема определяет внешний вид компонентов пользовательского интерфейса, таких как цвета, шрифты, изображения и т. д.

Когда вы создаете веб-приложение с использованием Spring Framework, вы можете хотеть дать пользователю возможность выбора темы или стиля. FixedThemeResolver предоставляет простой способ жестко задать тему в коде и применить ее ко всем страницам вашего веб-приложения.

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

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

Senior Java Developer

Класс StringJoiner

Класс StringJoiner предназначен для построения строки путем соединения элементов из коллекции.
Он позволяет указать разделитель, префикс и суффикс результирующей строки.

StringJoiner часто используется при необходимости преобразовать коллекцию объектов в строку.

В примере StringJoiner используется как раз для объединения имен в строку с разделителем и добавлением префикса/суффикса.

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

Senior Java Developer

🥶 Забудь о Web2 Программировании: Переходи на Web3 и Зарабатывай От $60,000!

Если ты разработчик, но до сих пор не в теме Web3, то упустил множество возможностей. Middle Web3 разработчики уже зарабатывают от $5,000 до $8,000 в месяц!

🔎 Что такое Web3 в двух словах, и как стать мастером блокчейн-разработки?
🔎 Какие перспективы ждут именно тебя на рынке Web3, учитывая твой текущий стек?
🔎 Вакансии, зарплаты и требования к блокчейн-разработчикам: разберем на реальных примерах с рынка.
🔎 Как за 2 года увеличить доход до $5,000+ и стать Middle в Web3?
🔎 Апгрейд: как стать более востребованным, не меняя текущий стек?

✈️ И даже поделимся секретами релокации и работы в международной компании!

🗺 Построим личный роадмеп и разберем все это на 30-минутной бесплатной консультации:

Как действующему программисту расширить стек до Web3 и стать блокчейн-разработчиком на Solidity, увеличив доход в $ за несколько месяцев!

👨‍💼 Кто проводит?

Рекрутеры Crypton Studio — крупнейшей студии блокчейн-разработки в Европе (6 лет на рынке, более 160+ сотрудников, в числе которых 63% разработчиков, огромное портфолио из более чем 100 успешно реализованных проектов для клиентов из 20 стран). Они запустили новый проект MarniD и телеграм-канал, где можно учиться на их опыте!

Места на консультацию ограничены

Если ты действующий разраб, то переходи на сайт и оставляй заявку
ссылка

Команда свяжется с тобой и забронирует слот на Zoom! Узнай о своих возможностях на рынке будущего!

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

Senior Java Developer

Класс AbstractSet

AbstractSet — это абстрактный класс, который предоставляет базовую реализацию интерфейса Set. Он входит в java.util пакет.

AbstractSet реализует большинство методов интерфейса Set, оставляя для подклассов только методы size() и iterator(). Это позволяет создавать подклассы с минимальным кодом.
Для хранения элементов AbstractSet использует объект Collection, передаваемый в конструктор.

Методы add(), remove(), contains() делегируют работу соответствующим методам внутренней коллекции.
Методы size(), isEmpty(), clear() и другие используют объект коллекции для реализации.

#это_база

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

Senior Java Developer

#вопросы_с_собеседований
Какие условия “благополучной” сериализации объекта?

Для успешной сериализации объекта должны выполняться следующие условия:

1. Класс объекта должен имплементировать интерфейс Serializable.

2. В классе должно быть определено serialVersionUID — идентификатор версии класса. Это нужно для совместимости версий класса при десериализации.

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

4. Если в классе есть поля, которые не нужно сериализовывать, они помечаются модификатором transient.

5. Методы класса сериализации не подлежат, сериализуются только данные объекта.

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

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

Senior Java Developer

ServletResponse

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

ServletResponse позволяет абстрагироваться от деталей протокола и реализации при формировании ответа.

Здесь с помощью ServletResponse устанавливается тип ответа, получается объект для записи, и формируется HTML-страница в качестве ответа клиенту.

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

Senior Java Developer

ServletContext

ServletContext предоставляет сервлету доступ к контексту веб-приложения. Он содержит общую информацию о приложении и позволяет сервлетам взаимодействовать.
Доступ к ServletContext можно получить через метод getServletContext() класса ServletConfig.

Через ServletContext можно получить данные инициализационных параметров web.xml.
ServletContext позволяет сервлетам оставлять атрибуты, доступные всем сервлетам данного приложения.

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

#это_база

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

Senior Java Developer

ServletConfig

ServletConfig используется для настройки сервлетов при их инициализации.

Основные моменты, которые следует знать о ServletConfig:

ServletConfig предоставляет сервлету доступ к инициализационным параметрам. Эти параметры определяются в дескрипторе развертывания (например, web.xml).

— Для получения экземпляра ServletConfig используется метод getServletConfig(), вызываемый в методе инициализации сервлета init().

— Через ServletConfig можно получить доступ к контексту сервлета с помощью метода getServletContext().

— Можно получить значение инициализационного параметра по имени с помощью метода getInitParameter().

— Можно перечислить все инициализационные параметры методом getInitParameterNames().

#это_база

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

Senior Java Developer

#вопросы_с_собеседований
Как правильно сравнить значения строк двух различных объектов типа String и StringBuffer?

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

После этого значения уже можно сравнивать с помощью метода equals().

Или для простого сравнения значений можно использовать метод compareTo(), который вернет 0 если строки равны.

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

Senior Java Developer

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

Чтобы создать неизменяемую коллекцию, можно использовать интерфейс Collection и его реализации, такие как ArrayList или HashSet.

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

Этот метод вернет обертку этой коллекции, которая будет неизменяемой. Попытка модифицировать возвращенную коллекцию приведет к ошибке UnsupportedOperationException.

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

Senior Java Developer

LongAdder

LongAdder — это класс из пакета java.util.concurrent, оптимизированный для высокопроизводительного параллельного суммирования long значений.

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

Преимущества:
— Высокая скорость за счет разделения на сегменты и отсутствия блокировок.
— Минимизация конфликтов между потоками при обновлении.
— Лучше масштабируется на большом кол-ве ядер.

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

Senior Java Developer

Метод trimToSize()

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

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

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

#это_база

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

Senior Java Developer

#вопросы_с_собеседований
Могли бы вы придумать ситуацию, когда блок finally не будет выполнен?

— Если в блоке try вызвать метод System.exit(). Это приведет к немедленному завершению приложения, и блок finally пропускается.

— Если произойдет аварийное завершение JVM, например OutOfMemoryError. В этом случае JVM останавливается без выполнения finally.

— Если в блоке try выбрасывается исключение Error или его подклассы (например, StackOverflowError). Такие исключения обычно означают серьезную проблему, поэтому JVM не гарантирует выполнение finally.

— Если при выполнении кода в блоке try произошел deadlock. В этом случае поток зависает, и блок finally не выполняется.

— Если программа была принудительно остановлена, например, по kill -9 в Linux.

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