Изучаем Java. По вопросам сотрудничества: @seniorvladislav
Какова оценка временной сложности операций над элементами из HashMap? Гарантирует ли HashMap указанную сложность выборки элемента?
В общем случае операции добавления, поиска и удаления элементов занимают константное время.
Данная сложность не гарантируется, т.к. если хэш-функция распределяет элементы по корзинам равномерно, временная сложность станет не хуже Логарифмического времени O(log(N)), а в случае, когда хэш-функция постоянно возвращает одно и то же значение, HashMap превратится в связный список со сложностью О(n).
Пример кода двоичного поиска приведен выше.
👩💻 Начали путь в программировании и хотите практики?
На вебинаре 4 декабря в 20:00 мск вы создадите свой первый сетевой чат на Java!
Вместе разберем, как работать с сетью, потоками и java .io.
Этот вебинар — отличная практика для начинающих.
Это ваш шанс выйти за рамки теории и сделать реальный проект, который отлично подойдет для портфолио.
Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.
➡️ Регистрируйтесь на вебинар, погружайтесь в мир Java и получайте скидку на большое обучение «Java-разработчик»: https://otus.pw/MacY/Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Оптимизация строк
При конкатенации строк на Java с помощью оператора +, например, в цикле for, каждый раз создается новый объект String, что приводит к потере памяти и увеличению времени работы программы.
Также следует избегать создания Java строки с помощью конструктора класса.
Создание объектов только при необходимости
Создание объектов – одна из самых затратных операций в Java. Лучшая практика – создавать их только при необходимости, когда они действительно нужны.
Меняем местами две переменные в одной строке
Многие знают, что в Python можно красиво поменять значения переменных в одну строку: a, b = b, a
Можно ли что-то похожее сделать в Java? Да. На картинке показан пример, но в реальных проектах так делать не стоит.
Collections.emptyList()
Collections.emptyList() возвращает пустой неизменяемый список.
Это статический фабричный метод из класса Collections
, который возвращает пустой список типа List<Object>
.
Основные моменты:
— Возвращает пустой список, а не null
. Это полезно, чтобы избежать проверок на null
.
— Список неизменяемый (immutable
). Нельзя добавлять или удалять элементы из него.
— Работает быстрее, чем создание нового списка через new ArrayList()
.
— Может использоваться как значение по умолчанию или стартовое значение для списка.
#это_база
Забирай пошаговую roadmap по JAVA
FAANG School в течение 24 часов отдают бесплатно свою библиотеку знаний. Вы можете получить доступ:
– Redis - 5 улучшений для твоего пет-проекта
– Пошаговая RoadMap по Java
– Мануал по Docker. Основные команды и концепции
– Микросервисы. Вопросы с собеседований
– Шпаргалка с горячими клавишами JetBrains IDE. Ускоришь работу в 10 раз
– Desk setup. Подборка аксессуаров для комфортной работы
– Шпаргалка по Kafka
– Инструкция по работе с Git
– Подробный гайд, как найти работу в IT без опыта
– Подборка платформ с вакансиями для java-разработчиков
Последнее пополнение - Шпаргалка по Spring, в которой подробно разобрали, что такое паттерн Наблюдатель, и как его реализовать в Java. А также познакомитесь с событиями и научитесь работать с ними в Spring Boot!
Библиотека знаний обновляется постоянно, но бесплатный доступ длится всего сутки. Чтобы получить полезные материалы, переходи по ссылке и жми на оранжевую кнопку.
#вопросы_с_собеседований
Можно ли объявить класс абстрактным, если в нем нет абстрактных членов? Какова может быть цель такого класса?
Да, класс можно объявить абстрактным, даже если он не содержит абстрактных членов. Из-за абстрактности его объект не может быть создан, но сам класс может служить корневым для некоторой иерархии, предоставляя методы, которые могут быть полезны для реализаций.
#вопросы_с_собеседований
Что такое метааннотации?
Аннотации, которые применяются к другим аннотациям. Все аннотации, которые не отмечены @Target
или отмечены им, но содержат константу ANNOTATION_TYPE, также являются мета-аннотациями.
👩💻 Приглашаем вас принять участие в открытом уроке, который посвящён теме «Интернационализация и локализация в приложениях Spring». Вы узнаете, как эффективно реализовать процесс локализации в Spring-приложениях.
Мы рассмотрим работу с классом Locale, использование MessageSource в Spring Boot и без него, способы хранения и смены локали в веб-приложениях, а также локализацию в шаблонах Thymeleaf и сообщений Bean Validation.
Более того, обсудим, почему не стоит локализовывать исключения, и проанализируем исходный код для лучшего понимания процессов.
🗓 25 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework» от Otus.
Программа вебинара:
✔️ Основы локализации в Spring.
✔️ Инициализация и конфигурация MessageSource.
✔️ Управление локалью в веб-приложениях.
✔️ Практические аспекты локализации.
Этот урок будет полезен Java-разработчикам с опытом 1–3 года, а также Kotlin-разработчикам.
🔗 Ссылка на регистрацию:https://otus.pw/RvSi/
🎁 Только в "Черную пятницу", скидки на курс до 15%! Подробности у менеджеров.Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Уже завтра собеседование на Middle Java с разработчиком из МТС
20 ноября (уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
1. Мария Ядерцова ведущий Java-разработчик в МТС Диджитал и ex. Сбербанк-Технологии будет задавать реальные вопросы и задачи разработчику-добровольцу
2. Мария будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
3. В конце можно будет задать любой вопрос Марии
Что узнаешь на прямом эфире от ШОРТКАТ:
• Чего ждут от кандидатов на Middle позиции в Java-разработке
• Какие вопросы задают на интервью и зачем
• Как подготовиться к собесу, чтобы получить оффер
Это бесплатно? Бесплатно
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqufTvBQ
elastic/elasticsearch ⭐️ 59k
Это распределенная поисковая система на Java с большими возможностями. Поддерживает многопоточность, горизонтально масштабируется. Находится в свободном доступе и используется многими популярными сайтами.
https://github.com/elastic/elasticsearch
#вопросы_с_собеседований
Как поведёт себя коллекция, если вызвать iterator.remove()?
Если вызову iterator.remove()
предшествовал вызов iterator.next()
, то iterator.remove()
удалит элемент коллекции, на который указывает итератор, в противном случае будет выброшено IllegalStateException()
.
⚡️Всероссийский Хакатон ФИЦ 2024
🚀Попробуйте себя в одном из предложенных кейсов:
- Разработка алгоритма трекинга людей в видеопотоке с нескольких камер
- Цифровая карта подземных коммуникаций с использованием Cesium
- Симуляция записи в расписание
- Цифровой сервис для ведения реестра зеленых насаждений города Москвы
- Предсказание необходимого количества средств досмотра
- Система контроля и управления доступом
- Семантический делитель текстов
- Разработка сервиса печати этикеток для производителей одежды
И др. кейсы смотрите на сайте: https://фиц2024.рф/hackathon
Хакатон пройдет в 2 этапа: Отборочный этап в Онлайн, Финал в Офлайн.
🏆Призовой фонд: 6 000 000 руб.
🔥Дедлайн регистрации: 26 ноября, 23:59
📅Даты отборочного этапа: 29 ноября - 2 декабря
🦾Даты финала: 3 - 4 декабря
Зарегистрируйтесь для участия в хакатоне: https://фиц2024.рф/hackathon
#реклама
О рекламодателе
Метод before()
Метод before() класса Date проверяет, была ли наша дата раньше той, которую мы передаем в качестве аргумента.
#вопросы_с_собеседований
Сделайте HashSet из ключей HashMap.
Ответ на картинке.
Метод startsWith()
Метод startsWith() в Java имеет два варианта и проверяет, начинается ли строка с указанного префикса, начиная с указанного индекса или с начала (по умолчанию).
Позитивный JVM Митап. Никакого Spring
28 ноября, 17:30
Офлайн (Москва) + онлайн-трансляция
Возможность почувствовать вайб Java-конференций уходящего года. В уютном кругу любителей JVM будем говорить только про Core Java.
Александр Богданов: «Кодогенерируй правильно!»
Александр Токарев: «Патчинг байт-кода: когда это нужно»
Александр Ланцов: «По следам 1BRC: трюки и подходы к оптимизации производительности»
Владимир Ситников: «Обратная совместимость в Java-мире»
👉 Узнать больше о докладах и зарегистрироваться
⁉️Хотите погрузиться в мир имитационного моделирования? Узнать, как создать «цифровой двойник» для бизнеса?
27 ноября в 19:00 мск на бесплатном вебинаре мы откроем для вас возможности AnyLogic! Вы изучите основы создания моделей и разберете ТЗ для пункта выдачи товаров. Регистрация
Узнайте, как использовать AnyLogic для оптимизации процессов, сократить затраты и улучшить работу компании. Начните с нашего вебинара и получите практический опыт!
👨💻Спикер Никита Власов — инженер по имитационному моделированию с опытом работы в международных компаниях.
🔥Регистрируйтесь прямо сейчас, забронируйте место и получите скидку на большое обучение «Имитационное моделирование на базе AnyLogic»: https://otus.pw/Rcdh/Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
#вопросы_с_собеседований
Что такое Executor?
Executor — это интерфейс, который позволяет запускать задачи асинхронно. Используется вместе с интерфейсами Callable и Future для асинхронного выполнения задач.
Он определяет единственный метод execute(), который принимает объект Runnable с задачей для выполнения.
Интерфейс позволяет отделить логику создания и запуска потоков от самих задач.
Потоки создаются заранее и хранятся в пуле, а задачи просто отправляются на выполнение через execute().
Это дает выигрыш в производительности, т. к. исключает накладные расходы на создание новых потоков.
#вопросы_с_собеседований
Чем полезны неизменяемые объекты?
Неизменяемость (immutability) помогает облегчить написание многопоточного кода. Неизменяемый объект может быть использован без какой-либо синхронизации. К сожалению, в Java нет аннотации @Immutable
, которая делает объект неизменяемым, для этого разработчикам нужно самим создавать класс с необходимыми характеристиками.
Для этого необходимо следовать некоторым общим принципам: инициализация всех полей только в конструкторе, отсутствие методов setX() вносящих изменения в поля класса, отсутствие утечек ссылки, организация отдельного хранилища копий изменяемых объектов и т.д.
#вопросы_с_собеседований
Что такое тернарный оператор выбора?
Тернарный условный оператор ?: - оператор, которым можно заменить некоторые конструкции операторов if-then-else.
Выражение записывается в следующей форме:
условие ? выражение1 : выражение2
Если условие выполняется, то вычисляется выражение1 и его результат становится результатом выполнения всего оператора. Если же условие равно false, то вычисляется выражение2 и его значение становится результатом работы оператора. Оба операнда выражение1 и выражение2 должны возвращать значение одинакового (или совместимого) типа.
Бесплатный интенсив: Java-разработчик: старт в профессии с нуля.
📆 Когда: 27-28 ноября в 19:00 по мск.
За два дня интенсива в прямом эфире, под руководством опытного Java-разработчика, вы сможете:
✔️ Познакомиться с синтаксисом и основными конструкциями языка Java.
✔️ Написать свой первый проект и определить, подходит ли вам профессия разработчика.
✔️ Создать Telegram-бота с нуля.
✔️ Узнать ответы интересующие вас вопросы.
✔️ Получить доступ к закрытому профессиональному сообществу.
🎁 Подарки для участников
интенсива: гайд «Как заговорить на сленге IT-специалистов», карта компетенций начинающего Java-разработчика и доступ в закрытое сообщество «Старт в Java» от Хекслета!
Реклама. ООО "ХЕКСЛЕТ РУС". ИНН 7325174845. erid:LjN8K36fP
#вопросы_с_собеседований
Напишите потокобезопасную реализацию класса с неблокирующим методом BigInteger next(), который возвращает элементы последовательности: [1, 2, 4, 8, 16, ...]
Ответ на картинке.
Может ли один блок catch отлавливать сразу несколько исключений?
В Java 7 стала доступна новая языковая конструкция, с помощью которой можно перехватывать несколько исключений одним блоком catch
.
#вопросы_с_собеседований
В реализации класса ArrayList есть следующие поля: Object[] elementData, int size. Объясните, зачем хранить отдельно size, если всегда можно взять elementData.length?
Размер массива elementData
представляет собой вместимость (capacity) ArrayList
, которая всегда больше переменной size
- реального количества хранимых элементов. При необходимости вместимость автоматически возрастает.
🔞 Java как секс!
Если зубрить ее только по книжкам, то кроме теории и деградации, ты ничему не научишься
В канале Java, полегче 🥵! ты найдешь лучшие практики написания кода. Действующий тимлид европейского финтеха, самобытно и с долей юмора, делится секретами 🤫:
➖ Гайд по Kafka(причем тут порноактриса Piper Perri)
➖ Roadmap java разработчика на 2025
➖ Самый кринжовый подарок, сделанный девушке, с помощью программирования
➖ Как java крадет твои деньги
➖ Топ 8 ошибок при составлении резюме
➖ Самые сложные алгоритмы на моей практике. Не трать на них время
➖ Chatgpt telegram bot с нуля на java
➖ Миллиард тенге. Самая сложная задача
И это только цветочки. Рекомендую!
В этом канале даже джуны становятся сеньорами 😏
🔈 Подписывайся, это самый простой способ прокачать свои хард-скиллы: @javezka
#вопросы_с_собеседований
Какие существуют unchecked exception?
Наиболее часто встречающиеся: ArithmeticException, ClassCastException, ConcurrentModificationException, IllegalArgumentException, IllegalStateException, IndexOutOfBoundsException, NoSuchElementException, NullPointerException, UnsupportedOperationException.
#вопросы_с_собеседований
Каким образом реализованы методы hashCode() и equals() в классе Object?
Реализация метода Object.equals()
сводится к проверке на равенство двух ссылок(код 1 на картинке).
Реализация метода Object.hashCode()
описана как native
, т.е. определенной не с помощью Java кода и обычно возвращает адрес объекта в памяти(код 2 на картинке).
👩💻 Мечтаете научиться программировать на Java? Пора начинать!
🗓 20 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java-разработчик» от Otus.
Приходите на открытый урок, где мы шаг за шагом создадим игру «Угадай число» с нуля.
Вы познакомитесь с основами языка, поймете, как изменять код и менять функционал программы, освоите первые блоки, которые нужны для старта.
Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.
Хотите научиться создавать приложения? Узнать, как строятся программы на Java? Этот урок — ваш первый шаг в IT!
🔗 Ссылка на регистрацию: https://otus.pw/rY4d/Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru