Класс Throwable
Класс Throwable
является суперклассом для всех ошибок и исключений. Объекты класса Throwable
используются для представления нештатных ситуаций, которые могут возникнуть во время выполнения программы.
Класс Throwable
имеет следующие важные методы:getMessage()
— возвращает строковое сообщение, описывающее исключение.printStackTrace()
— выводит в стандартный поток ошибок подробную информацию об исключении, включая его тип, сообщение и стек вызовов.
Исключения делятся на две категории: ошибки и исключения. Ошибки являются необратимыми ситуациями, которые приводят к завершению работы программы. Исключения же являются обратимыми ситуациями, которые можно обработать и продолжить выполнение программы.
#для_продвинутых
#вопросы_с_собеседований
Почему современные фреймворки используют в основном только unchecked exceptions?
Unchecked exceptions используются в основном потому, что они не требуют обязательной обработки исключений в коде. Это позволяет упростить код и сделать его более читаемым. Однако, это также может привести к тому, что исключения не будут обработаны и программа может завершиться аварийно.
Некоторые же фреймворки используют checked exceptions для обработки ошибок ввода-вывода или других проблем, которые могут возникнуть в процессе выполнения программы. Однако, это может привести к тому, что код становится более сложным и менее читаемым.
Класс MathContext
Класс MathContext
используется для указания точности вычислений с плавающей запятой. Он определяет два параметра:precision
— количество знаков после запятой, которые должны сохраняться в результате вычислений.roundingMode
— способ округления значений, которые не могут быть точно представлены с заданной точностью.
По умолчанию точность вычислений в Java равна 16 знакам после запятой, а режим округления — HALF_UP
.
#для_начинающих
EventListenerEventListener
(слушатель событий) — это интерфейс, который позволяет объектам реагировать на события, происходящие в системе. Он используется для создания интерактивных приложений, где действия пользователя или изменения в системе должны вызывать определенные реакции.
#для_продвинутых
Java-разработчики, QA-инженеры (backend) и системные аналитики, любите интересные задачи?
Попробуйте свои силы на Weekend Offer Нефинансовых сервисов — экосистемы на сайте Т-Банка, которая делает жизнь клиентов ярче. Здесь они выбирают билеты, продукты, топливо и отправляются в путешествия.
В команду ждут специалистов с опытом работы от 3 лет. Можете пройти собеседование за выходные, познакомиться с проектами, решить технические задачи и получить оценку от экспертов Т-Банка. Если справитесь — оффер получите на неделе.
Успейте подать заявку до 21 августа
erid:2Vtzqwh63Fy
Реклама. АО "ТБанк", ИНН 7710140679, лицензия ЦБ РФ № 2673
SoftReferenceSoftReference
(мягкая ссылка) — это класс, который представляет собой ссылку на объект, который может быть удален сборщиком мусора (GC) в любой момент, если память нужна для других объектов.
Принцип работы:
— Создание: SoftReference
создается с помощью конструктора, который принимает ссылку на объект.
— Доступ к объекту: Для доступа к объекту, на который ссылается SoftReference
, используется метод get()
.
— Очистка: GC может очистить SoftReference
в любой момент, если память нужна для других объектов.
Когда использовать SoftReference:
— Кэширование: SoftReference
можно использовать для реализации кэшей, где важно сохранить объекты в памяти, если это возможно, но не обязательно.
— Сохранение метаданных: SoftReference
можно использовать для хранения метаданных об объектах, которые не являются критичными для работы приложения.
#для_продвинутых
InvocationHandlerInvocationHandler
— это интерфейс, реализуемый обработчиком вызовов для экземпляра прокси. Каждый экземпляр прокси имеет связанный с ним обработчик вызовов. Когда метод вызывается на экземпляре прокси, вызов метода кодируется и отправляется в метод invoke
его обработчика вызовов.
#для_продвинутых
ResultSetResultSet
в Java представляет собой объект, который содержит данные, полученные в результате выполнения запроса к базе данных. Он используется для итерации по строкам и столбцам результата запроса и доступа к значениям данных.
#для_начинающих
Бэкенд-разработчики, вышла новая версия CodeRun с задачами от разработчиков Яндекса и внешних экспертов
CodeRun — бесплатный онлайн-тренажер с кастомизацией сложности и большим каталогом задач. Здесь можно готовиться к техническим собеседованиям по программированию и заполнять пробелы в знаниях. А еще решать тематические и авторские подборки и задания с прошлых турниров и контестов.
Главная особенность: здесь есть система рейтинга и баллов, а также сезонные турниры. По итогам каждого сезона лучшие кодеры могут получить мерч, сертификаты и даже возможность попасть в штат Яндекса по упрощенному найму.
2 сезон уже начался: решайте задачи и зарабатывайте баллы на ценные призы.
Как между собой связаны Iterable и Iterator?
Интерфейс Iterable
имеет только один метод - iterator()
, который возвращает Iterator
.
Java Bean
JavaBeans - это стандартный подход к созданию переносимых и повторно используемых компонентов. Они представляют собой классы, которые следуют определенным соглашениям и обеспечивают удобный способ управления состоянием и поведением объектов.
Основные характеристики JavaBeans:
1. Класс должен быть публичным и иметь открытый конструктор без аргументов.
2. Приватные поля класса должны быть доступны с помощью геттеров и сеттеров (getter
и setter
методы).
3. Класс должен быть сериализуемым, то есть должен реализовывать интерфейс Serializable
.JavaBeans
также могут иметь дополнительные свойства, такие как события и методы уведомления, которые позволяют другим компонентам реагировать на изменения состояния.
#вопросы_с_собеседований
Можно ли «воскресить» объект, ставший подходящим для сборки мусора?
Когда объект становится пригодным для сборки мусора, GC должен запустить для него метод finalize. Метод finalize гарантированно запускается только один раз, поэтому сборщик мусора помечает объект как завершенный и дает ему паузу до следующего цикла.
В методе finalize вы можете технически «воскресить» объект, например, присвоив его статическому полю. Объект снова станет живым и не подходящим для сборки мусора, поэтому сборщик мусора не соберет его в следующем цикле.
Однако объект будет помечен как завершенный, поэтому, когда он снова станет приемлемым, метод finalize вызываться не будет. По сути, вы можете провернуть этот трюк с «воскрешением» только один раз за время существования объекта. Имейте в виду, что этот уродливый прием следует использовать только в том случае, если вы действительно знаете, что делаете, но понимание этого приема дает некоторое представление о том, как работает сборщик мусора.
#вопросы_с_собеседований
Можно ли объявить класс абстрактным, если в нем нет абстрактных членов? Какова может быть цель такого класса?
Ответ:
Да, класс можно объявить абстрактным, даже если он не содержит абстрактных членов. Из-за абстрактности его объект не может быть создан, но сам класс может служить корневым для некоторой иерархии, предоставляя методы, которые могут быть полезны для реализаций.
Метод copyValueOf()
Метод copyValueOf() в Java имеет две различные формы:
1) public static String copyValueOf(char[] data) — возвращает строку, которая представляет собой последовательность символов в заданном массиве.
2)public static String copyValueOf(char[] data, int offset, int count) — возвращает строку, которая представляет собой последовательность символов в заданном массиве.
Параметры:
data — массив символов;
offset — начало смещения подмассива;
count — длина подмассива.
Узнаем разницу между 2 датами, представленными в виде строк
Для вычисления разницы между двумя датами, представленными в виде строк, можно использовать классы java.time.LocalDate и java.time.temporal.ChronoUnit из пакета java.time.
В этом примере мы используем метод LocalDate.parse()
для преобразования строковых значений в объекты типа LocalDate. Затем мы используем метод ChronoUnit.between()
для вычисления разницы между двумя датами в днях, месяцах и годах.
Обратите внимание, что вы должны использовать формат даты "yyyy-MM-dd" для парсинга строковых значений даты. Если ваши строки даты имеют другой формат, вам может потребоваться использовать другой метод для преобразования их в объекты LocalDate.
Не знаете, как правильно реализовать аварийное восстановление (DR) и высокую доступность (HA)?
А теперь представьте, что вы освоили основы DR и HA, понимаете их взаимосвязь и умеете применять архитектурные паттерны для обеспечения надежности и доступности.
Присоединяйтесь к открытому вебинару «Связь DR и HA в современных архитектурных решениях» 14 августа в 20:00 мск и сделайте этот прыжок в будущее! Там мы обсудим все эти проблемы и даже больше, а также разберем возникающие вопросы.
👨💻🛠👨🏻💻 Урок будет полезен Backend- и Fullstack-разработчикам, DevOps-инженерам, архитекторам ПО, IT-менеджерам и руководителям проектов.
🔴 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cyTRf2Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Класс Unsafe
Класс Unsafe
— это мощный, но опасный инструмент, который позволяет выполнять низкоуровневые операции с памятью и внутренними механизмами JVM. Его использование не рекомендуется для обычных задач веб-разработки или стандартных приложений, но он может быть полезен в специфических ситуациях, требующих высокой производительности и обхода стандартных механизмов Java.
#для_продвинутых
У вендора и производителя 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;
– комфортные офисы в Москве, Санкт-Петербурге, Нижнем Новгороде и Минске.
Скорее переходи по ссылкам и оставляй отклики!
java.lang.reflect.Constructor
Класс java.lang.reflect.Constructor
представляет собой конструктор класса Java. Он используется для создания экземпляров класса, предоставляя доступ к информации о конструкторе, а также возможность его вызова.
#для_продвинутых
KeyListener KeyListener
— это интерфейс в Java, который позволяет отслеживать события, связанные с клавиатурой. Он используется для определения того, когда пользователь нажимает, отпускает или печатает клавишу.
#для_продвинутых
Офер в Яндекс для опытных бэкендеров за два дня
24–25 августа приглашаем бэкендеров с опытом работы от пяти лет получить офер в Яндекс через multitrack за 2 дня. Достаточно решить задачи онлайн до 20 августа и пройти несколько технических секции 24 августа, чтобы уже 25-го получить офер и выбрать три команды, к которым вам было бы интересно присоединиться.
Как правило, за несколько собеседований сложно понять, подходит ли вам команда и наоборот. Multitrack позволит вам поработать в трёх разных командах Яндекса и выбрать подходящую. Вы сможете погрузиться в рабочие процессы, познакомиться с будущими коллегами и понять, с какими задачами и технологиями хотите работать.
Узнать подробности и зарегистрироваться.
Реклама. ООО "Яндекс". ИНН 7736207543
DatagramPacketDatagramPacket
— это класс в Java, который представляет собой пакет датаграмм. Датаграммы используются для реализации бессоединительной службы доставки пакетов. Это означает, что каждый пакет отправляется независимо от других пакетов, и нет гарантии, что они будут доставлены в том же порядке, в котором были отправлены.
#для_продвинутых
GZIPInputStreamGZIPInputStream
— это класс в Java, который используется для декомпрессии данных, сжатых с помощью алгоритма gzip
. Gzip
– это популярный формат сжатия, который используется для уменьшения размера файлов без значительной потери данных.
#для_продвинутых
Какое из следующих утверждений о потоках неверно?
1. Если метод start()
вызывается дважды для одного и того же объекта Thread
, во время выполнения генерируется исключение.
2. Порядок, в котором запускались потоки, может не совпадать с порядком их фактического выполнения.
3. Если метод run()
вызывается напрямую для объекта Thread
, во время выполнения генерируется исключение.
4. Если метод sleep()
вызывается для потока, во время выполнения синхронизированного кода, блокировка не снимается.
Правильный ответ: 3. Если метод run()
вызывается напрямую для объекта Thread
, во время выполнения исключение не генерируется. Однако, код, написанный в методе run()
будет выполняться текущим, а не новым потоком. Таким образом, правильный способ запустить поток – это вызов метода start()
, который приводит к выполнению метода run()
новым потоком.
Вызов метода start()
дважды для одного и того же объекта Thread
приведёт к генерированию исключения IllegalThreadStateException
во время выполнения, следовательно, утверждение 1 верно. Утверждение 2 верно, так как порядок, в котором выполняются потоки, определяется Планировщиком потоков, независимо от того, какой поток запущен первым. Утверждение 4 верно, так как поток не освободит блокировки, которые он держит, когда он переходит в состояние Ожидания.
Промпт-инженеринг — новый хайп или перспективная профессия?
Рассказываем про направление с большим потенциалом и маленькой конкуренцией на рынке на нашей бесплатной лекции.
По итогам эфира вы узнаете:
— Кто такой промт-инженер и чем он занимается;
— Как интегрировать скиллы промт-инжинеринга в работу, если вы работаете в IT;
— Кому в действительности нужны его услуги и какие результаты это даст;
— Сколько платят промт-инженеру в России и мире;
— Кто может стать промт-инженером и какой порог входа;
Кликай на ссылку и забирай подробную информацию вместе с классными бонусами.
erid: LjN8JveAZ
ООО Зерокодер, ИНН 9715401631
Класс TreeMap
Класс TreeMap
реализует интерфейс Map
, используя дерево. TreeMap
обеспечивает эффективное средство хранения пар ключ/значение в отсортированном порядке и позволяет быстро извлекать данные.
Следует отметить, что, в отличие от хэш-карты, карта деревьев гарантирует, что ее элементы будут отсортированы в порядке возрастания ключа.
Все методы и конструкции класса TreeMap
можно посмотреть здесь.
#для_продвинутых
Подчеркивание в числовых литералах
В Java SE 7 и более поздних версиях символы подчеркивания могут использоваться в числовых литералах без появления каких-либо предупреждений или ошибок в выводе.
Газпромбанк открывает набор на оплачиваемую стажировку GPB.IT Factory: Perl-разработка
На стажировке ты приобретешь или укрепишь навыки программирования на надежном языке Perl и получишь опыт коммерческой разработки. И все это на реальных задачах банка!
Почему стоит подать заявку:
– ЗП до 150 000 рублей до вычета налога;
– работа в удаленном или гибридном формате;
– нет требований к опыту в трудовой.
Лучшие участники смогут остаться в штате Газпромбанка после стажировки!
Регистрируйся до 11 августа по ссылке 👈
Расположите в виде иерархии следующие интерфейсы: List, Set, Map, SortedSet, SortedMap, Collection, Iterable, Iterator, NavigableSet, NavigableMap
Ответ на картинке.
Что такое double checked locking Singleton?
double checked locking Singleton - это один из способов создания потокобезопасного класса реализующего шаблон Одиночка. Данный метод пытается оптимизировать производительность, блокируясь только случае, когда экземпляр одиночки создаётся впервые.
Следует заметить, что требование volatile обязательно. Проблема Double Checked Lock заключается в модели памяти Java, точнее в порядке создания объектов, когда возможна ситуация, при которой другой поток может получить и начать использовать (на основании условия, что указатель не нулевой) не полностью сконструированный объект. Хотя эта проблема была частично решена в JDK 1.5, однако рекомендация использовать volatile для Double Cheсked Lock остаётся в силе.