PathIteratorPathIterator
— это интерфейс в Java, который позволяет объектам, реализующим интерфейс Shape
, возвращать геометрию своей границы, позволяя вызывающему объекту получать путь этой границы по одному сегменту за раз.
Основные возможности PathIterator:
— PathIterator
позволяет перебирать сегменты пути объекта Shape
по одному.
— Для каждого сегмента PathIterator
может предоставить информацию о его типе (например, линия, кривая Безье), координатах и других атрибутах.
— PathIterator
может использоваться для преобразования пути объекта Shape
, например, для его масштабирования, поворота или перемещения.
#для_продвинутых
FairSemaphore FairSemaphore
— это класс, реализующий семафор, который обеспечивает справедливое распределение разрешений между потоками. Это означает, что потоки, ожидающие разрешения, будут получать его в порядке очереди, а не в случайном порядке.
В примере на картинке два потока будут пытаться получить доступ к ресурсу, который защищен с помощью FairSemaphore
. Потоки будут получать доступ к ресурсу по очереди, а не в случайном порядке.
#для_продвинутых
BrokenBarrierExceptionBrokenBarrierException
— это исключение, которое возникает в Java, когда поток пытается ждать на барьере, который находится в сломанном состоянии или когда пытается войти в барьер, который переходит в сломанное состояние во время ожидания.
Как исправить:
— Обработайте исключение BrokenBarrierException
в коде.
— Убедитесь, что все потоки, которые будут ждать на барьере, завершатся до того, как вы его сломаете.
— Используйте CyclicBarrier
вместо Barrier
, если вам нужно сбросить барьер и запустить его снова.
#для_продвинутых
PreferencesFactory
Интерфейс PreferencesFactory
используется для создания объектов Preferences.
Он предоставляет два метода:systemRoot()
: Возвращает корневой узел предпочтений системы.userRoot()
: Возвращает корневой узел предпочтений пользователя, вызвавшего метод.
Поставщики новых реализаций Preferences
должны предоставлять соответствующие реализации PreferencesFactory
, чтобы их можно было установить вместо реализации по умолчанию, зависящей от платформы.
#для_продвинутых
AtomicStampedReference AtomicStampedReference
— это класс в Java, который используется для обеспечения атомарного доступа к ссылке на объект и целочисленному «штампу».
Что такое атомарный доступ?
Атомарный доступ означает, что операции чтения и записи выполняются целиком, без промежуточных состояний. Это гарантирует, что другие потоки не смогут увидеть частично обновленное значение.
#для_продвинутых
Что делает метод intern() в классе String?
Метод intern()
используется для сохранения строки в пуле строк или получения ссылки, если такая строка уже находится в пуле.
Открыта регистрация на конкурс прикладной разработки «Разработка игр – GameDev»
Друзья, приглашаем вас принять участие в конкурсе «Разработка игр – GameDev» от GitVerse в рамках олимпиады «IT-Планета 2024»!
Подключайтесь, если вам от 18 до 35 лет, у вас есть опыт в разработке игры, навыки выбора движков и прототипирования. Участвовать можно как самостоятельно, так и в команде до 4-х человек.
До 31 марта регистрируйтесь и проходите отборочное тестирование на площадке для разработчиков GitVerse от СберТеха.
Конкурс состоит из трех этапов: отборочное тестирование, основной этап в виде отправки проектов и очный финал.
Призовой фонд конкурса составляет 500 тыс. рублей*!
Подробные условия конкурсов и регистрация.
Следите за новостями и удачи в конкурсе!
*За вычетом НДФЛ
🔥 Годнота
База с 1700 вопросами с собеседований на Java разработчика. Фишка в том что просчитана вероятность с которой вопрос буден задан и есть примеры ответов. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам 😏
#вопросы_с_собеседований
Как одной строчкой преобразовать HashSet в ArrayList?
Ответ на картинке.
Вариант для тех, кто ищет игровой сервер с хорошей веб-защитой — Aéza:
– Виртуальные сервера до 6.0 ГГц Intel Core i9-14900k;
– Профессиональная фильтрация атак StormWall;
– Круглосуточная поддержка;
– Anycast фильтрация;
– Низкие цены;
– 15% кешбэка по ссылке.
Кроме того, сейчас Aéza раздает личные бесплатные сервера, забираем тут. Регистрация, подписка, платежи не потребуются.
Как эффективно разделять приложения на микросервисы?
🔥 Расскажет Евгений Непомнящий — разработчик в IT Sense.
Встречаемся на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:
- рассмотрите принципы функциональной декомпозиции;
- научитесь выделять отдельные компоненты приложения;
- погрузитесь в методику EventStorming;
- изучите подход API First Design;
- узнаете, как разрабатывать API.
Встречаемся 19 марта в 20:00 мск в рамках курса «Software Architect». Доступна рассрочка на обучение!
👉 Зарегистрируйтесь, чтобы посетить бесплатный урок и получить запись: https://otus.pw/oA7l/?erid=LjN8K5LYg
Что такое интерфейс Cloneable?
Это маркерный интерфейс, то есть он не содержит никаких методов, а только сигнализирует о том, что объекты класса, реализующего этот интерфейс, могут быть клонированы.
Клонирование объекта означает создание его независимой копии.
Как работает клонирование в Java?
1. Реализация интерфейса Cloneable
: Класс, объекты которого вы хотите клонировать, должен реализовывать интерфейс Cloneable
.
2. Переопределение метода clone()
: Вам необходимо переопределить метод clone()
из класса Object
в вашем классе. Этот метод возвращает копию объекта.
3. Вызов метода clone()
: Чтобы создать копию объекта, вызовите метод clone()
у этого объекта.
#для_продвинутых
Атомарные переменные в Java.util.concurrent
Пакет java.util.concurrent.atomic
определяет классы, которые поддерживают атомарные операции над отдельными переменными. Все классы имеют методы get
и set
, которые работают как чтение и запись волатильных переменных. То есть set
имеет отношение happens-before с любым последующим get
на той же переменной.
Ниже перечислены все переменные, определенные в пакете: AtomicBoolean
, AtomicInteger
, AtomicLong
, AtomicReference
.
В этом примере создается AtomicInteger
со значением 0. Затем значение инкрементируется с помощью метода incrementAndGet()
. В конце значение получается с помощью метода get()
.
ZipFile ZipFile
— это класс, который используется для чтения содержимого ZIP-архивов. Он позволяет вам перебирать записи в архиве, получать информацию о них и извлекать их содержимое.
#для_начинающих
ManagementFactory
ManagementFactory — это класс-фабрика, предназначенный для получения управляемых beans для платформы Java. Он состоит из статических методов, каждый из которых возвращает один или несколько platform MXBeans, представляющих собой интерфейс управления компонентом виртуальной машины Java (JVM).
#для_продвинутых
Как разработчику перейти на Scala и увеличить доход в 2024?
Всего за 5 месяца освоить подходы функционального программирования и самые мощные библиотеки на онлайн-курсе «Scala-разработчик» от OTUS.
🔥 Программа идеально подойдет Java-разработчикам с опытом работы от года и программистам на другом языке с опытом от трёх лет.
На курсе вас ждут:
- живые вебинары с возможностью задать вопросы экспертам;
- много практики и сильные проекты для портфолио;
- поддержка профессионального комьюнити;
- рассрочка на комфортных условиях.
Только до 24 марта вы можете применить 🎁 промокод scala10 и получить скидку на обучение!
Не упускайте свой шанс, изучите подробности и оставьте заявку прямо сейчас: https://otus.pw/HnxJ/?erid=LjN8KAoW9
Java — универсальный язык программирования. На нём написаны YouTube, Amazon, Netflix, Facebook, большинство мобильных приложений для Android и даже Minecraft.
Выбирайте Java, и вы будете востребованы в небольших IT-агентствах и топовых компаниях: «Альфа-Банк», OZON и «Авито».
Язык возможно выучить самостоятельно, но гораздо проще — на курсе с поддержкой опытного эксперта, где вас ждет стажировка.
Вы научитесь:
— создавать приложения на Java;
— разбираться в алгоритмах и структурах данных;
— пользоваться Git;
— создавать игры;
— работать с базами данных;
— оптимизировать код.
Зарегистрироваться можно по ссылке: https://epic.st/ciJEo?erid=2Vtzqw9hdh6
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
newCachedThreadPoolnewCachedThreadPool
— это метод класса Executors
, который создает пул потоков, обладающий следующими характеристиками:
— Создание новых потоков по мере необходимости: пул создает новые потоки для выполнения задач, когда они поступают.
— Повторное использование существующих потоков: если в пуле есть неактивные потоки, они будут повторно использованы для выполнения новых задач.
— Бесконечное количество потоков: пул не имеет ограничений на количество потоков, которые он может создать.
— Удаление неактивных потоков: пул автоматически удаляет неактивные потоки через 60 секунд.
#для_начинающих
Microservices | Вопросы с Собеседований
- Подборка вопросов по микросервисной архитектуре с реальных собеседований
- Авторские статьи по архитектуре, проектированию, базам данных
- Автор - Lead Developer на Java/Kotlin
Что такое многопоточность в Java?
Многопоточность — это процесс одновременного выполнения нескольких задач в рамках одной программы. Это делается для достижения максимальной загрузки процессора.
Переопределение метода
Переопределение метода (Method Overriding) — это механизм ООП, который позволяет классу создать новую реализацию метода, который уже существует в его суперклассе (родительском классе). При переопределении метода дочерний класс предоставляет свою собственную версию метода, заменяя реализацию, унаследованную от родительского класса.
#для_начинающих
#вопросы_с_собеседований
Чем stub отличается от mock?
stub используется как заглушка сервисов, методов, классов и т.д. с заранее запрограммированным ответом на вызовы.
mock использует подмену результатов вызова, проверяет сам факт взаимодействия, протоколирует и контролирует его.
#вопросы_с_собеседований
Как одной строчкой скопировать элементы любой collection в массив?
Ответ на картинке.
Класс System
Класс System
представляет собой системный класс, который предоставляет набор методов и свойств, позволяющих взаимодействовать с операционной системой, окружением выполнения и осуществлять различные системные операции.
Класс System
является частью пакета java.lang
, который импортируется по умолчанию во все программы на Java.
Класс System
является важным инструментом для взаимодействия с операционной системой и окружением выполнения. Он предоставляет широкий набор методов и свойств, которые могут быть использованы для различных целей.
#для_начинающих
Класс Character
Класс Character
в Java является классом-обёрткой для примитивного типа данных char
. Он предоставляет несколько полезных методов для работы с символами, таких как проверка на принадлежность к различным категориям (цифры, буквы, пробелы и т.д.) и преобразование регистров.
#для_начинающих
23 марта, в субботу, SM Lab проводит Spring Day Offer для Java-разработчиков.
📍 Программа Spring Day Offer, 23 марта:
● Тестовые задания. Проверим уровень ваших навыков.
● Техтолки. В перерывах между тестовыми заданиями с докладами выступят наши ведущие специалисты.
● Знакомство с командами. Успешные кандидаты познакомятся с командами и узнают, какие задачи им предстоит решать.
● Кульминация! Оффер! Успешно прошедшие все этапы кандидаты в этот же день получат от нас предложение о работе.
📍 Мы ждем, что вы:
● Java-разработчик с опытом работы на Spring от 3-х лет;
● стремитесь расти и развиваться;
● хотите делать качественные ИТ-продукты и развивать ритейл в России;
● понимаете важность командной работы и стремитесь к ней.
🔥 Если вам интересно — до 19 марта зарегистрируйтесь на лендинге, и с вами свяжутся.
Остались вопросы? Пишите сюда: IT-HR@sportmasterlab.net
JarFileJarFile
— это класс в Java, который используется для чтения содержимого JAR-файла. JAR-файл (Java ARchive) — это формат архива, который используется для объединения нескольких файлов Java (.class), а также других ресурсов, таких как изображения, звуки и текстовые файлы, в один файл.
Создание объекта JarFile
Для создания объекта JarFile
необходимо использовать его конструктор, который принимает путь к JAR-файлу в качестве параметра.
#для_продвинутых
InvocationTargetException InvocationTargetException
– это проверяемое исключение, которое возникает при вызове метода или конструктора через рефлексию, если этот метод или конструктор бросает свое собственное исключение.
#для_продвинутых
MethodHandle MethodHandle
— это типизированная, напрямую исполняемая ссылка на метод, конструктор, поле или подобную низкоуровневую операцию с необязательными преобразованиями аргументов или возвращаемых значений.
#для_продвинутых