Изучаем Java. По вопросам сотрудничества: @seniorvladislav
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).
#для_продвинутых
AccessibleObject AccessibleObject
— это базовый класс для объектов Field
, Method
и Constructor
. Он позволяет помечать рефлектируемый объект как подавляющий проверки контроля доступа языка Java по умолчанию при его использовании.
Контроль доступа в Java языке запрещает:
—Использование приватных членов за пределами их класса верхнего уровня;
— Членов пакета за пределами их пакета;
— Защищенных членов за пределами их пакета или подклассов;
— Публичных членов за пределами их модуля, если они не объявлены в экспортируемом пакете, и пользователь не читает их модуль.
Важно: использование AccessibleObject может привести к проблемам безопасности, поэтому его следует использовать с осторожностью.
#для_продвинутых
OutOfMemoryError
«OutOfMemoryError» ошибка в Java, указывающая на то, что приложению не хватило памяти для выполнения операции. Это может произойти, когда программа пытается выделить больше памяти, чем доступно в куче (heap), которая используется для хранения объектов и данных во время выполнения Java-приложения.
В результате JVM (Java Virtual Machine) больше не может выделить дополнительную память, и возникает ошибка «OutOfMemoryError».
#для_начинающих
newCachedThreadPoolnewCachedThreadPool
— это метод класса Executors
, который создает пул потоков, обладающий следующими характеристиками:
— Создание новых потоков по мере необходимости: пул создает новые потоки для выполнения задач, когда они поступают.
— Повторное использование существующих потоков: если в пуле есть неактивные потоки, они будут повторно использованы для выполнения новых задач.
— Бесконечное количество потоков: пул не имеет ограничений на количество потоков, которые он может создать.
— Удаление неактивных потоков: пул автоматически удаляет неактивные потоки через 60 секунд.
#для_начинающих
Microservices | Вопросы с Собеседований
- Подборка вопросов по микросервисной архитектуре с реальных собеседований
- Авторские статьи по архитектуре, проектированию, базам данных
- Автор - Lead Developer на Java/Kotlin
Что такое многопоточность в Java?
Многопоточность — это процесс одновременного выполнения нескольких задач в рамках одной программы. Это делается для достижения максимальной загрузки процессора.
Переопределение метода
Переопределение метода (Method Overriding) — это механизм ООП, который позволяет классу создать новую реализацию метода, который уже существует в его суперклассе (родительском классе). При переопределении метода дочерний класс предоставляет свою собственную версию метода, заменяя реализацию, унаследованную от родительского класса.
#для_начинающих
Погубит ли Java 22 сборочные инструменты?
Смотреть статью
#вопросы_с_собеседований
Чем 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
— это типизированная, напрямую исполняемая ссылка на метод, конструктор, поле или подобную низкоуровневую операцию с необязательными преобразованиями аргументов или возвращаемых значений.
#для_продвинутых
Привет! Это Podlodka Crew — организатор онлайн IT-конференции по различным технологиям.
Уже 11 марта запускаем четвёртый сезон звёздной Podlodka Java Crew с Филиппом Дельгядо, Гришей Кошелевым, Владимиром Картяевым и другими топовыми спекерами. Тема — наболевшая: интеграции между сервисами.
Если вы знакомы с болью интеграций не понаслышке, то ловите подробности:
🌟Kafka и Open-API. Разберём популярный подход к проектированию серверных приложений API-First. Рассмотрим программный продукт, доступный для серверных приложений, использующих брокеры сообщений.
🌟OAuth 2.0. Выясним, что лучше: взять готовое решение или реализовать собственный сервис. Обсудим подходы к реализации функционала и научимся встраивать двухфакторную авторизацию.
🌟Service Mesh. Погрузимся в реальные кейсы внедрения и деплоймента, поделимся опытом организации взаимодействия сервисов. Посмотрим на типичные проблемы и варианты их решения.
🌟GraphQL. На воркшопе раз и навсегда определим, когда и зачем он нужен, какие у него преимущества и недостатки. Обучимся версионировать схему и API. Объясним, как масштабировать GraphQL после внедрения. Бонус: разбор разных подходов на практических кейсах.
Это не все сессии грядущего сезона.
Больше подробностей и билеты забирайте на сайте:
https://podlodka.io/javacrew
Реклама. ИП Толстая Елена Петровна ИНН:507503278104, erid:2SDnjdSigqn
🔥 Годнота
Наткнулся на базу с 1700 вопросов с собеседований на Java разработчика. Фишка в том что просчитана вероятность с которой вопрос буден задан и есть примеры ответов. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам 😏