Изучаем Java. По вопросам сотрудничества: @seniorvladislav
Пишем Java веб-приложение на современном стеке. С нуля до микросервисной архитектуры. Часть 2
Смотреть статью
Vector API в Java: краткий обзор и тестирование
Vector API в Java сейчас — это модуль, который предоставляет возможность выполнять векторные вычисления, ускоряемые аппаратно.
Смотреть статью
#вопросы_с_собеседований
Сравните Iterator и ListIterator
• ListIterator
расширяет интерфейс Iterator
• ListIterator
может быть использован только для перебора элементов коллекции List
;
• Iterator
позволяет перебирать элементы только в одном направлении, при помощи метода next()
. Тогда как ListIterator
позволяет перебирать список в обоих направлениях, при помощи методов next()
и previous()
;
• ListIterator
не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous()
и next()
.
• При помощи ListIterator
вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add()
и remove()
. Iterator
не поддерживает данного функционала.
Как готовиться к собеседованию на Java-разработчика?
▶️Приходите 15 марта в 20:00 на открытый урок: «Введение в Java Collections: списки и O(n)»
Занятие пройдет в рамках специализации «Java Developer» в OTUS (возможна рассрочка).
👨💻Вместе с преподавателем мы познакомимся со списками в Java и изучим особенности их использования и получим ответ на самый популярный вопрос на собеседованиях по Java. В результате урока вы будете знать основные особенности списков в java и скорости их работы.
❕Занятие подойдет всем желающим изучить способы хранения коллекций данных в и подготовиться к собеседованию.
👉 Перед занятием ЗАРЕГИСТРИРУЙТЕСЬРеклама. Информация о рекламодателе на сайте www.otus.ru
Для работы в международной команде базового английского может не хватить. Держите 5 советов, которые помогут подготовиться к общению с иностранными коллегами.
Если хотите подтянуть язык для работы в IT — попробуйте Яндекс Практикум. Они запустили курсы специально для разработчиков, аналитиков и продакт-менеджеров.
В основе обучения — занятия с личным преподавателем, дополнительно вас ждёт разговорная практика с иностранными IT-специалистами. Они помогут освоить язык на примере собеседований, стендапов, ревью и других рабочих встреч. Будет проще пройти реальное англоязычное собеседование, если вы уже тренировали его на занятиях.
Записывайтесь на бесплатную консультацию к куратору. Он определит ваш уровень языка и расскажет о курсе.
Росбанк F*ckup Night
Бесплатное мероприятие для IT-специалистов, которые понимают, что ошибаться — это нормально. Будем говорить про фейлы и уроки в формате коротких питчей и обсуждений.
🔵 Как выстроить работу с джунами и не поймать «биг бадабум»;
🔵 Платить ли за T-shape;
🔵 «Проблема не на нашей стороне или все же…»;
Полный список тем и спикеров узнайте на нашем сайте.
Мероприятие можно посмотреть онлайн или посетить лично — оно пройдет в офисе Росбанка в башне ОКО II бизнес-центра "Москва-Сити".
10 марта, в 19:00
Online / offline
#вопросы_с_собеседований
Когда в приложении может быть выброшено исключение ClassCastException?ClassCastException
(потомок RuntimeException
) — исключение, которое будет выброшено при ошибке приведения типа.
Java RegEx: использование регулярных выражений на практике
Рассмотрим регулярные выражения в Java, затронув синтаксис и наиболее популярные конструкции, а также продемонстрируем работу RegEx на примерах.
Смотреть статью
Tapestry
Tapestry — объектно-ориентированный Java фреймворк для создания веб-приложений, реализующих модель MVC. Tapestry был создан Howard Lewis Ship и продолжает активно развиваться. Фреймворк является проектом верхнего уровня в организации Apache Software Foundation.
Посмотреть документацию можно здесь.
Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana
В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.
Смотреть статью
#вопросы_с_собеседований
Возможна ли ситуация, когда HashMap выродится в список даже с ключами имеющими разные hashCode()?
Это возможно в случае, если метод, определяющий номер корзины будет возвращать одинаковые значения.
Guava
Guava — это сборник множества библиотек от Google. Он включает в себя:
☕️ несколько новых типов коллекций, неизменяемые коллекции;
☕️ библиотеку, реализующую работу с графами;
☕️ работу с вводом\выводом, хешированием, кэшированием, строками и многим другим.
Например, часто в коде можно встретить повторяющиеся блоки, реализующие низкоуровневую конкатенацию строк (см. пример кода). Согласитесь, код с Guava выглядит лаконичнее, понятнее, а главное, выполняет эту операцию самым оптимальным образом.
На эту библиотеку определённо стоит обратить внимание как минимум по причинам. Во-первых, она разработана спецами из Google. Во-вторых, эти же спецы из Google сами её используют. Репозиторий с документацией и инструкцией к установке тут.
Object[] vs custom Class
Код с Object абсолютно не читабельный, когда приходится работать с возвращаемым значением в другом месте.То есть, чтобы понять что же хранит в себе возвращаемое значение — нужно вернуться в класс вызова и читать комментарии к методу, если же, конечно, они есть, а если нет, вникать в код, что не очень эффективно. Собственно, я сам этим иногда грешу, когда очень спешу. С этим можно смириться, если это очень редко, но, все же, в таких ситуациях лучше создавать новый класс. Облегчите жизнь тем, кто придет после вас.
Java - что нужно, чтобы найти работу и как это учить
Смотреть видео
Пишем Java веб-приложение на современном стеке. С нуля до микросервисной архитектуры. Часть 1
Смотреть статью
Разработайте приложение на Java за 4 занятия, даже если никогда не программировали — на бесплатном курсе «Основы разработки на Java».
Язык программирования Java — универсальный и мощный язык, на котором пишут сайты, интернет-магазины, приложения, даже telegram-ботов. А в разработке Android-приложений Java наряду с родственным ему Kotlin считается главным языком программирования. Это перспективный язык программирования, который подойдёт тем, кому важна надёжность и стабильность кода.
Если сейчас вы выбираете язык программирования для изучения, вы можете присмотреться к Java. На бесплатном курсе «Основы разработки на Java» вы изучите основы синтаксиса языка Java, а в качестве практики разработаете приложение для публикации фото из NASA и перепишете его под Telegram API. Для обучения на курсе не обязательно иметь опыт в программировании.
Записаться на бесплатный курс → https://netolo.gy/blty
Реклама. ООО «Нетология» LatgC5K3b
Устроиться в Яндекс за два дня — реально
Weekend Offer Backend 1–2 апреля
1–2 апреля участвуйте в Weekend Offer Backend, решите задания, пройдите две секции, пообщайтесь с командами и получите офер. В мероприятии участвуют разные сервисы Яндекса, так что можно будет решить, что подходит именно вам.
Формат работы обсуждается индивидуально с каждым кандидатом: работать можно удалённо, в смешанном режиме или в коворкинге в одном из 20 городов России и мира.
Ждём инженеров с опытом коммерческой разработки от трёх лет на одном из языков: Java, Python, C++, Go Scala — или тех, кто готов работать на этих языках.
Зарегистрироваться
Компьютерное зрение на Java? Элементарно вместе с OpenCV
Смотреть статью
#вопросы_с_собеседований
В каких пакетах расположены классы потоков ввода/вывода?java.io
, java.nio
. Для работы с потоками компрессированных данных используются классы из пакета java.util.zip
.
#вопросы_с_собеседований
Сколько элементов будет пропущено, если Iterator.nеxt() будет вызван после 10-ти вызовов Iterator.hasNext()?
Ответ:
Нисколько - hasNext() осуществляет только проверку наличия следующего элемента.
Play Framework позволяет легко разрабатывать расширяемые вебприложения на Java и Scala.
https://github.com/playframework/playframework
Как вывести на экран 5 случайных чисел в порядке возрастания в одну строку?
Ответ на картинке.
Что такое ReadWriteLock?ReadWriteLock
— это интерфейс, расширяющий базовый интерфейс Lock
. Используется для улучшения производительности в многопоточном процессе и оперирует парой связанных блокировок (одна - для операций чтения, другая - для записи). Блокировка чтения может удерживаться одновременно несколькими читающими потоками, до тех пор, пока не появится записывающий. Блокировка записи является эксклюзивной.
Существует реализующий интерфейс ReadWriteLock
класс ReentrantReadWriteLock
, который поддерживает до 65535 блокировок записи и до стольки же блокировок чтения.
#вопросы_с_собеседований
Даны 3 потока: Т1, Т2 и Т3. Как реализовать выполнение в последовательности Т1, Т2, Т3?
Такой последовательности выполнения можно достичь многими способами, например, просто воспользоваться методом join(), чтобы запустить поток в момент, когда другой уже закончит своё выполнение. Для реализации заданной последовательности, нужно запустить последний поток первым, и затем вызывать метод join() в обратном порядке, то есть Т3 вызывает Т2.join, а Т2 вызывает Т1.join, таким образом Т1 закончит выполнение первым, а Т3 последним.
#вопросы_с_собеседований
Какова роль equals() и hashCode() в HashMap?
hashCode позволяет определить корзину для поиска элемента, а equals используется для сравнения ключей элементов в списке корзины и искомого ключа.
eclipse-vertx/vert.x
Набор инструментов для создания реактивных приложений для виртуальной Java машины. Vert.x имеет очень простую модель параллелизма, высокую производительность, модульную структуру и легко масштабируется между ядрами системы.
Фреймворк решает такие низкоуровневые задачи, как поддержка протоколов HTTP, TCP и доступ к файловой системе.
https://github.com/eclipse-vertx/vert.x
#вопросы_с_собеседований
Какая основная разница между String, StringBuffer, StringBuilder?
Класс String является неизменяемым (immutable) - модифицировать объект такого класса нельзя, можно лишь заменить его созданием нового экземпляра.
Класс StringBuffer изменяемый - использовать StringBuffer следует тогда, когда необходимо часто модифицировать содержимое.
Класс StringBuilder был добавлен в Java 5 и он во всем идентичен классу StringBuffer за исключением того, что он не синхронизирован и поэтому его методы выполняются значительно быстрей.
Как написать свою змейку на Java за 15 минут
Смотреть статью
Регулярное выражение для электронной почты
Регулярные выражения представляют собой формальный язык поиска и редактирования подстрок в тексте. К примеру, надо провалидировать email адрес. Это будет проверка на наличие имени адреса, домена, символа @, точки и доменной зоны.