Оператор instanceof
Оператор java instanceof используется для проверки того, является ли объект экземпляром указанного типа (класса или подкласса или интерфейса). Во время выполнения результат оператора instanceof равен true, если значение выражения не равно null.
Это важное свойство операции instanceof, которое делает ее полезной для проверки приведения типов.
📌 Составили список лучших каналов от действующих разработчиков:
Java Developer — советы и практики от действующего Senior-разработчика
Python Developer — секреты и тонкости программирования на Python
Frontend Developer — готовый код и полезные ресурсы для любого фронтендера
Реализация авторизации на основе ролей в Spring Boot с помощью Keycloak
Контроль доступа на основе ролей является обязательным условием для любого приложения, имеющего дело с пользователями, которые могут получать доступ к определенным ресурсам в зависимости от своей роли в организации.
Смотреть статью
93% мужчин не знают, как вести себя с девушкой на самом деле
Из-за чего девушка охладевает, теряет инетерес, сливается, устраивает сцены, обиды, манипуляции, постоянно что-то требует, в то время, как с другим парнем может потерять дар речи от одного его взгляда, в котором чувствуется уверенность и сила.
Если сталкивался хоть толикой подобных проблем, срочно заходи на канал Творчество Чувств. Тут научат:
— грамотно общаться с девушками и доводить до секса
— строить прочные отношения, где девушка ласковая и покорная, а ты — лидер
— сформировать базу мужских принципов, которые помогут во всех направлениях в жизни
Все про отношения и жизненный путь мужчины: t.me/+bU_6kzhieGliMTFi
Внимание, разработчики! Приглашаем вас на открытый вебинар по алгоритмам и структурам данных от опытного практикующего эксперта💯
Ждём вас на уроке «Визуальное сравнение 1-2-3 алгоритмов сортировок» от OTUS, где мы:
- подробно рассмотрим три алгоритма сортировок: Пузырьком, Вставкой и Шелла;
- сравним их по различным критериям: сложность и количество обменов, стабильность и адаптивность;
- напишем алгоритмы и сравним их быстродействие;
- продемонстрируем их работу на игральных картах🂱️
🔥 Спикер Евгений Волосатов — программист баз данных и преподаватель с огромным и разнообразным опытом, автор статей и учебных программ по C#, Java, PHP.
Встречаемся 1 июля в 20:00 мск в преддверии старта курса «Алгоритмы и структуры данных». Все участники вебинара получат специальную цену на обучение.
🔴 Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://otus.pw/h4Wz/?erid=LjN8KC9Mn
Разбираем как решать задачи на LeetCode
✅ Примеры решений
✅ Пояснения
Выбери своё направление:
1. Python
2. JavaScript
3. Java
4. C#
5. Golang
6. С/C++
7. PHP
8. Kotlin
9. Swift
Пузырьковая сортировка
Данный алгоритм сортировки известен в первую очередь за счёт своей простоты, однако при этом он имеет одну из наиболее низких скоростей выполнения.
Пузырьковая сортировка весьма и весьма медленная, с временной сложностью O(N²), так как мы имеем вложенные циклы. Внешний проход по элементам выполняется за N раз, внутренний — тоже N раз, и в итоге мы получаем N*N, N² итераций.
Для чего используется PushbackInputStream?
Разновидность буферизации, обеспечивающая чтение байта с последующим его возвратом в поток. Класс PushbackInputStream
представляет механизм «заглянуть» во входной поток и увидеть, что оттуда поступит в следующий момент, не извлекая информации.
У класса есть дополнительный метод unread()
.
📚 Здесь собраны все вопросы, которые могут спросить на собеседовании. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам. Просто выбери своё направление:
1. Frontend / JavaScript
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. С/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
Пишем Telegram-бота для скачивания видео из VK на Spring Boot и деплоим в Kubernetes
Смотреть статью
Метод Math.ceil()
Метод дает целое число с нулевой дробной частью, ближайшее к числу аргумента справа, другими словами — округляет дробь в большую сторону. Возвращается переменная типа double
.
LibGDX
LibGDX — это кроссплатформенный фреймворк для разработки 2D- и 3D-игр на Java. Он позволяет создавать игры для настольных компьютеров, мобильных устройств, веб-браузеров и даже консолей. LibGDX популярен среди разработчиков игр благодаря своей простоте использования, производительности и большому сообществу.
#для_продвинутых
Использование Spring Cloud Gateway в качестве OAuth2 клиента и KeyCloak для защиты служб
В первую очередь, данная статья для тех, кто только пытаются освоить технологии Spring Cloud и KeyCloak, но уже имеют базовое представление о них.
Смотреть статью
Метод ensureCapacity
Увеличивает размер внутреннего массива, чтобы в него поместилось количество элементов, переданных в minCapacity. Если массив достаточно вместителен, никакие преобразования не производятся.
Этот метод полезен, когда возникает потребность вместить большое количество элементов в несколько итераций. Например, при создании списка емкость его внутреннего массива — 10. При загрузке данных по сети они обрабатываются асинхронно порциями и результаты помещаются в массив. Если ожидается доставка 10 000 элементов, может быть неэффективно просто добавлять эти данные каждый раз: достаточно будет в начале обработки вызвать метод ensureCapaciry(10000) и записывать туда данные по мере необходимости.
«Код Ход Шоу» от Т-Банка для тех, кто работает на Java или только вкатывается:
— Необычный формат крестиков-ноликов. Участникам задают вопросы на знание Java, и если они отвечают правильно — могут поставить знак.
— Команды разработчиков из бигтеха (Т-Банк, Яндекс, Вертикаль, X5 Tech, Сбер, Samokat. tech и другие).
— Победитель проходит дальше, а в финале встретятся две лучшие команды.
Смотрите ютуб-шоу и подписывайтесь на телеграм-канал с анонсами новых выпусков и другими полезными материалами по Java.
erid:2VtzqwwkaKZ
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
Приходите на наш Я.Субботник по JVM — 29 июня в Новосибирске!
Вас ждёт митап о том, как мы пишем код на Java, Scala и Kotlin.
В программе — доклады крутых спикеров, нетворкинг и афтерпати. Расскажем про pattern matching, процессы и факапы на складах Маркета, а еще про архитектуру наших систем.
Программа получилась насыщенной — зарегистрироваться можно по ссылке.
До встречи на Субботнике! ☀️
Что такое «локальный класс»? Каковы его особенности?
Local inner class (Локальный класс) - это вложенный класс, который может быть декларирован в любом блоке, в котором разрешается декларировать переменные. Как и простые внутренние классы (Member inner class) локальные классы имеют имена и могут использоваться многократно. Как и анонимные классы, они имеют окружающий их экземпляр только тогда, когда применяются в нестатическом контексте.
Локальные классы имеют следующие особенности:
• Видны только в пределах блока, в котором объявлены;
• Не могут быть объявлены как private/public/protected
или static
;
• Не могут иметь внутри себя статических объявлений методов и классов, но могут иметь финальные статические поля, проинициализированные константой;
• Имеют доступ к полям и методам обрамляющего класса;
• Могут обращаться к локальным переменным и параметрам метода, если они объявлены с модификатором final
.
Что произойдет со сборщиком мусора, если выполнение метода finalize() требует ощутимо много времени, или в процессе выполнения будет выброшено исключение?
Непосредственно вызов finalize()
происходит в отдельном потоке Finalizer
(java.lang.ref.Finalizer.FinalizerThread
), который создаётся при запуске виртуальной машины (в статической секции при загрузке класса Finalizer
). Методы finalize()
вызываются последовательно в том порядке, в котором были добавлены в список сборщиком мусора. Соответственно, если какой-то finalize()
зависнет, он подвесит поток Finalizer
, но не сборщик мусора. Это в частности означает, что объекты, не имеющие метода finalize()
, будут исправно удаляться, а вот имеющие будут добавляться в очередь, пока поток Finalizer
не освободится, не завершится приложение или не кончится память.
То же самое применимо и выброшенным в процессе finalize()
исключениям: метод runFinalizer()
у потока Finalizer
игнорирует все исключения выброшенные в момент выполнения finalize()
. Таким образом возникновение исключительной ситуации никак не скажется на работоспособности сборщика мусора.
Что такое Java Virtual Machine (JVM)? Как она работает?
Java Virtual Machine (JVM) - это среда выполнения, которая позволяет выполнять Java-приложения на любой платформе, где установлена JVM. Она является ключевым компонентом технологии Java, так как обеспечивает портативность и независимость Java-кода от конкретной операционной системы.
JVM принимает скомпилированный Java-код (байт-код) и интерпретирует его в машинный код на конкретной платформе. Он выполняет множество задач, включая загрузку классов, управление памятью, выполнение потоков, оптимизацию кода и т. д.
Когда Java-приложение выполняется на JVM, оно получает доступ к богатому набору библиотек Java, которые предоставляют множество готовых классов и методов для решения различных задач. Благодаря JVM Java считается одним из самых надежных и масштабируемых языков программирования.
#вопросы_с_собеседований
Прожарка java.lang.String
Давайте абьюзить баг в java.lang.String, который позволит делать очень странные строки. Мы сделаем "Hello World", который не начинается с "Hello" и покажем, что не все пустые строки равны между собой. Научимся прожаривать строки в чужих классах.
Смотреть статью
❗️ Отус приглашает 19 июня в 18:00 по МСК на бесплатный вебинар «Uniswap: эволюция крупнейшего децентрализованого финансового протокола от версии v1 до v4»!
Вебинар является бесплатной частью полноценного онлайн-курса «Solidity Developer».
➡️ Регистрация на вебинар: https://otus.pw/r9ke5/?erid=LjN8KTYU4
Понимание Uniswap v4 и Hooks становится все более востребованным, так как многие приложения, даже не связанные с DeFi, используют Uniswap, например, для размещения токенов своих проектов.
На вебинаре мы разберем:
✅ развитие протокола от v1 до v4;
✅ особенности архитектуры v4 и почему деплой протокола был невозможен до обновления Dencun в сети Ethereum;
✅ какие Hooks бывают и почему они похожи на Hooks в React;
✅ как происходит обмен токенов и менеджмент LP-позиций в v4 пулах.
Записывайтесь сейчас, а мы потом напомним. Участие бесплатно.
🔥Тесты для подготовки к собеседованию🔥
Выбери своё направление:
1. Frontend
2. Python
3. Java
4. Тестировщик QA
5. Data Science
6. DevOps
7. C#
8. С/C++
9. Golang
10. PHP
11. Kotlin
12. Swift
Комбинирование хеш-таблиц
Комбинирование двух хеш-таблиц вручную через цикл очень неэффективно. Вот альтернативное решение этой проблемы, которое вам возможно понравится.
Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера
Смотреть статью
Узнаем размер памяти компьютера
Для получения информации о памяти компьютера в Java можно использовать класс Runtime.
Регистрация на ARCHI.Tech от ВТБ уже стартовала!
Предварительный этап, на котором можно заработать дополнительные баллы, уже стартовал! Включайся в работу прямо сейчас: https://cnrlink.com/architechvtbjavasenior
📅 Расписание хакатона:
🔹 31 мая – начало регистрации
🔹 14 июня – старт предварительного этапа и митап для участников
🔹 28 июня – окончание регистрации, публикация задач хакатона
🔹 29 июня – закрытие приема решений, жюри выбирает финалистов
🔹 30 июня – онлайн-питч лучших проектов и награждение победителей в прямом эфире
Тебя ждет погружение в проекты ВТБ, знакомство с экспертами банка, решение практических задач и прокачка технических навыков!
👉 Попробуй себя в архитектуре — участвуй в ARCHI.Тech от ВТБ: https://cnrlink.com/architechvtbjavasenior
Реклама. БАНК ВТБ (ПАО). ИНН 7702070139. erid: LjN8KSod6
Получи оффер разработчика в YADRO!
Вендор и производитель IT-инфраструктуры, пользовательского и телеком - оборудования YADRO даёт возможность работать удаленно или в одном из классных офисов в Москве, Питере, Нижнем Новгороде, Екатеринбурге или Минске.
Сейчас открыты вакансии в департамент разработки программного обеспечения и флагманского продукта компании YADRO, современного хранилища – TATLIN.UNIFIED.
Ребята разрабатывают на GO и ожидают знания и понимания алгоритмов обработки данных, основных структур работы с данными, и, конечно, желания развиваться, решать задачи, осмысливая их.
Смотри список, выбирай вакансию и отправляй резюме:
• Инженер-программист Go
• Старший инженер-программист С++
• Старший DevOps-инженер