seniorjavist | Unsorted

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

-

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

Subscribe to a channel

Senior Java Developer

unmodifiableMap

UnmodifiableMap используется для создания неизменяемого представления отображения, это позволяет предоставить доступ к отображению, не давая возможности изменить его.

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

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

Senior Java Developer

unmodifiableSet

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

Как видно из примера, при попытке изменить неизменяемый набор unmodifiableSet выбрасывается исключение UnsupportedOperationException. Это гарантирует, что исходный набор не будет случайно изменен.

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

Senior Java Developer

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

Nashorn — это JavaScript движок на языке Java, который был введен в JDK 8.

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

— Позволяет выполнять JavaScript код из Java приложения. JavaScript код может взаимодействовать с java классами и объектами.

— Поддерживает ECMAScript 5.1 стандарт.

— JIT компиляция JavaScript кода в байт-код на лету, что обеспечивает высокую производительность.

— Потокобезопасность: один экземпляр Nashorn можно безопасно использовать из нескольких потоков.

— Интеграция с javax.script API для поддержки других скриптовых языков.

— Упрощает создание и встраивание скриптовых компонентов в Java приложениях.

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

Senior Java Developer

unmodifiableList

unmodifiableList используется для создания неизменяемого списка на основе другого списка.

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

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

В примере на основе mutableList создан неизменяемый список. Попытка изменить его выбросит исключение, но изменения в mutableList отразятся в immutableList.

#это_база

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

Senior Java Developer

Функция isBlank()

Функция isBlank() используется для проверки строки на пустоту или наличие только пробельных символов. Она была добавлена в Java 11 в класс String.

Как видно из примера, метод isBlank() возвращает true если строка пустая или содержит только пробельные символы. Это удобно использовать для проверки строк перед дальнейшей обработкой.

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

Senior Java Developer

🔥 Хардовый тест для разработчиков🔥

📕 Ответьте на 9 вопросов за 20 мин и проверьте, насколько вы готовы к обучению на курсе - «Архитектура и шаблоны проектирования»

💻 Научитесь применять шаблоны проектирования в разработках! Благодаря этому навыку вы сможете писать чистый код, экономить время на разработке и быстро «пересаживаться» на любой язык программирования. 

🏵 Ждем всех, кто хочет вырасти до Middle+ разработчика или архитектора ПО! 

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

💣 Пройдете тест, получите демо-ролик о занятиях на курсе и Welcome-скидку. 

Также вам откроется доступ к открытым урокам курса.

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

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

Senior Java Developer

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

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

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

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

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

Senior Java Developer

Метод ensureCapacity

Метод ensureCapacity() используется для выделения заранее зарезервированной емкости (capacity) для ArrayList и Vector.

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

#это_база

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

Senior Java Developer

Collections.emptyList()

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

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

#это_база

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

Senior Java Developer

SequenceInputStream

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

В примере мы создаем два массива байтов buf1 и buf2, оборачиваем их в ByteArrayInputStream. Затем передаем эти потоки в SequenceInputStream.

При чтении из SequenceInputStream сначала будут прочитаны данные из is1, затем из is2. Таким образом данные объединяются в один поток для удобства чтения.

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

Senior Java Developer

А ты точно джун?

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

Переходи в бот @test_your_java_bot, он поможет определить, на каком уровне Java-разработки ты находишься. В тесте – задачи, которые собрали джависты крупных IT-команд. Сможешь решить их все – любые вершины программирования твои.

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

​​@test_your_java_bot

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

Senior Java Developer

Погрузитесь в мир ☕️ Java и станьте Java-разработчиком за 4 месяца с курсом от Merion Academy!

Все, кому интересно, получат 🚀 3 бесплатных урока, 📍 Мы расскажем про то, что из себя представляет язык Java и его базовый синтаксис.

📍 Установите Java и среду разработки где будете писать код.
📍 Напишете свою первую консольную программу, а после нее и REST API приложение.
📍 А в конце закрепите полученные знания.

🎁 Бонус – интенсив по развитию карьеры, где HR-эксперты расскажут как создавать сильные резюме и проходить собеседования.
📜 Плюс гайд по базовому синтакису языка.

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

👉 Регистрируйтесь по ссылке чтобы забрать бесплатные уроки, интенсив по карьере и гайд.

Merion Academy – это экосистема доступного образования, которая включает в себя:

📍IT-базу знаний с полезными статьями.
📍merionacademy">Youtube-канал ,где простыми словами говорят о сложных вещах.
📍IT-академию, где обучат востребованным направлениям по самым доступным ценам.

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

Senior Java Developer

Класс java.lang

Класс java.lang — это базовый пакет, который автоматически импортируется в любую программу на Java.

Содержит фундаментальные классы, как Object, String, Integer и т. д., определяет общие классы-исключения, такие как NullPointerException, ArithmeticException, класс Math с математическими функциями, System для взаимодействия с системой.

Также включает класс Thread для многопоточного программирования, интерфейсы Cloneable, Runnable, Comparable, определяет класс Class, представляющий классы времени выполнения.

#это_база

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

Senior Java Developer

Класс java.util.Date

Класс java.util.Date представляет дату и время. Date хранит дату и время в миллисекундах с 1 января 1970 года 00:00:00 по UTC.

Конструкторы Date() и Date(long date) позволяют создать объект Date с текущей датой/временем или указанной датой/временем в миллисекундах.

Методы getTime() и setTime(long time) позволяют получить и установить время в миллисекундах.

Методы как getDay(), getMonth() и т. д. позволяют получить отдельные компоненты даты/времени.

Методы before() и after() позволяют сравнивать даты.

#это_база

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

Senior Java Developer

Класс LocalDateTime

Класс LocalDateTime используется для работы с датой и временем без учета часового пояса.
Он появился в Java 8 в пакете java.time и является частью новой date/time API, которая пришла на смену устаревшим классам Date и Calendar.

Основные возможности класса LocalDateTime:
— Хранение даты и времени с точностью до наносекунд.
— Получение различных компонентов даты/времени (год, месяц, день недели и т. д.).
— Выполнение операций сложения и вычитания дат и интервалов.
— Сравнение и сортировка дат по времени.
— Форматирование и парсинг строк по заданному шаблону.

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

Senior Java Developer

За что люблю шоу Яндекса «1х1» на YouTube — в нем сотрудники компании встречаются и обсуждают насущные вопросы, а в последнем выпуске еще и рассказали, как попасть к ним в команду.

Тех директора Никита Илясов (Еда) и Станислав Макеев (Лавка) в новом выпуске обсудили то, какой они видят разработку через пять лет и поговорили о своих факапах в работе.

Еще из интересного в этом выпуске — опытные разработчики дали советы джунам.

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

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

Senior Java Developer

⚡️В 2023 году уже не найти работу с большим доходом, для обычных людей.

Всё потому что, необходимо разбираться в IT и искусственном интеллекте.

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

❗️Также для наших подписчиков полностью бесплатный ChatGPT бот, который:

→ Даст ответ на любой вопрос
→ Сделает за вас 90 % работы
→ Переведёт текст, как настоящий человек


Если хотите быть в тренде, то этот канал для вас: @techno_hype_official

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

Senior Java Developer

#вопросы_с_собеседований
Расскажите о параллельной обработке в Java 8.

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

Потоки (threads): позволяют запускать код параллельно в нескольких потоках.

Fork/Join framework: фреймворк для разбиения задач на подзадачи и объединения результатов. Помогает эффективно использовать многоядерные процессоры.

Parallel Streams: позволяют применять операции к стримам данных параллельно с использованием Fork/Join. Ускоряет обработку больших объемов данных.

Concurrent collections: потокобезопасные коллекции для многопоточных приложений, например ConcurrentHashMap.

Executors: исполнители помогают управлять пулами потоков и очередями задач.

Atomics: атомарные переменные для синхронизации доступа без блокировок.

Locks: блокировки для синхронизации доступа к ресурсам из разных потоков.

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

Senior Java Developer

Ключевое слово transient

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

При сериализации объекта в поток все поля объекта записываются в этот поток. Но если поле помечено как transient, то его значение пропускается и не сериализуется.

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

В  этом примере поле cachedHashCode помечено как transient, поэтому при десериализации его значение будет равно стандартному значению для типа int, т.е. 0, вместо кэшированного значения хеш-кода.

#это_база

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

Senior Java Developer

Ключевое слово var

Ключевое слово var используется для объявления переменных с неявным типом.

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

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

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

Senior Java Developer

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

Приведение типов — это преобразование переменной одного типа в другой.

Существует два вида приведения типов:
— Повышение типа (widening): автоматическое преобразование типа в другой, более широкий тип. Например, int в long. При этом не теряется точность, так как широкий тип может представить все значения узкого типа.
— Понижение типа (narrowing): явное приведение к более узкому типу, например double в int. Здесь возможна потеря точности, поэтому требуется явное приведение в коде.

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

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

Senior Java Developer

Java-разработчиков в InsurTech ждут новые драйвовые вызовы.

Лидер индустрии в России ВСК запускает ONE DAY OFFER. Масштабное Agile-коммьюнити, проекты без монолитных решений и комфортные условия. Если получите оффер, вас ждет:

— Место в компании с золотом в рейтинге работодателей Forbes;
— Работа в гибкой методологии SAFe*;
— Комфортный график — удаленка или гибрид;
— Собственная DevOps-платформа (с поддержкой Kafka, Camunda, PostgreSQL и не только);
— Удобная микросервисная архитектура — включает больше 150 приложений и 800 сервисов;
— ДМС, программы лояльности и скидки у партнеров ВСК.

Еще есть вакансии в системной аналитике, тестировании, разработке C# и Data Science.

Подача заявок до 26 октября — поторопитесь! Регистрируйтесь: https://u.to/ThEIIA

Реклама, САО «ВСК», ИНН 7710026574, erid 2VtzquyC4o6

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

Senior Java Developer

Всем привет, мы исследовательское агентство SmartMinds и сейчас проводим опрос среди IT специалистов. Что хотим узнать: что важно при выборе работодателя, какие каналы являются эффективными при поиске работы и ходите ли вы на мероприятия для IT. Опрос анонимный, займет не более 3-х минут и мы будем благодарны всем, кто примет участие ❤️

Пройти опрос

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

Senior Java Developer

У вас есть готовый ИТ-продукт? Сделайте пилот с ВТБ!

Акселератор ВТБ приглашает технологические стартапы и компании протестировать свои решения на бизнес-процессах и клиентах банка. А в случае успешного пилота – стать поставщиком услуги/лицензии/продукта.

Подайте заявку на сайте, пройдите экспертизу и сделайте быстрый пилот с Акселератором ВТБ.

Преимущества банка:
- коммерческие пилоты
- fast track по запуску пилотов
- экспертиза по развитию вашего продукта

Действуем вместе!

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

Senior Java Developer

PushbackInputStream

PushbackInputStream используется для возврата байтов обратно в поток ввода.

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

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

Senior Java Developer

#вопросы_с_собеседований
В каких состояниях может пребывать поток?

Поток в Java может находиться в следующих состояниях:

New (Новый): поток создан, но еще не запущен.

Runnable (Готов к выполнению): поток запущен, но в данный момент не выполняется, а ожидает выделения процессорного времени.

Running (Выполняется): поток выполняется в настоящий момент.

Blocked (Заблокирован): поток заблокирован, ожидая завершения какого-либо события, например завершения операции ввода-вывода.

Waiting (Ожидание): поток ожидает другого потока, например, ожидая сигнала notify от другого потока.

Timed Waiting (Ожидание с таймаутом): то же, что Waiting, но с указанием таймаута.

Terminated (Завершен): выполнение потока завершено, например, после завершения метода run().

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

Senior Java Developer

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

В многопоточных приложениях возможны ситуации, когда два или более потока пытаются получить доступ и изменить общие данные одновременно.
Это может привести к непредсказуемому поведению и ошибкам, таким как race condition или deadlock.

Чтобы избежать таких проблем, нужно предотвратить одновременный доступ к общим данным с помощью синхронизации, например используя мониторы или блокировки.
Также полезны инструменты высокого уровня для синхронизации, такие как семафоры, очереди производителя-потребителя и другие коллекции из java.util.concurrent.

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

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

Senior Java Developer

👋Бэкендер, пора расти!

👉Узнайте как ЗАВТРА, 17.10 в 20:00 мск на бесплатном вебинаре онлайн-курса  «Clojure Developer» —  «Особенности Clojure: сфера разработки, основные фишки языка»: регистрация

На бесплатном вебинаре мы:
— рассмотрим, с какими задачами сталкиваются разработчики Clojure и какие основные особенности отличают его от других бэкендовых языков.
— обсудим преимущества, которые предлагает Clojure по сравнению с другими языками.
— изучим, какие возможности и перспективы он предлагает для разработчиков.

🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.

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

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

Senior Java Developer

Класс ZonedDateTime

Класс ZonedDateTime используется для работы с датой и временем с учетом часового пояса. Он также появился в Java 8 и является частью date/time API.

Основные возможности класса ZonedDateTime:
— Хранение даты, времени и часового пояса.
— Автоматический учет перехода на летнее/зимнее время.
— Получение даты/времени в разных часовых поясах.
— Вычисление разницы во времени между часовыми поясами.

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

Senior Java Developer

В России можно посещать IT-мероприятия хоть каждый день: как оффлайн, так и онлайн.

Чтобы не пропустить полезные — сохраните канал IT мероприятия России

Анонсы вебинаров, хакатонов, конференций, мастер-классов и других событий в IT. Ивенты от гигантов индустрии и лучших специалистов по кодингу.

Всё публикуют здесь.

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