Stream API
Stream API — это мощный инструмент, введенный в Java 8, который позволяет выполнять операции на потоках данных (sequences of elements) с использованием функциональных интерфейсов. Он предоставляет богатый набор операций для обработки и манипулирования данными в потоках, таких как фильтрация, сортировка, сопоставление, сведение и другие.
#для_начинающих
Статический инициализатор
Статический инициализатор — блок кода, который выполняется при первой загрузке класса или при первом обращении к статическому члену класса (переменной или методу). Статический инициализатор обычно используется для инициализации статических переменных или выполнения других действий, которые требуются только один раз, при загрузке класса.
#для_продвинутых
Динамический массив
В Java динамический массив представляет собой структуру данных, которая позволяет хранить и управлять коллекцией элементов переменного размера.
Он реализуется с помощью класса ArrayList
. ArrayList
представляет собой реализацию списка, который может изменять свой размер по мере необходимости.
#для_начинающих
О чём расскажут эксперты по разработке и эксплуатации на YaTalks 2023
Делимся некоторыми темами ↓
«Интеграция Delivery Club и Яндекс Еды» — как объединяли приложения и сотрудников разных команд, как укладывались в сроки и какие уроки извлекли из этого опыта.
Никита Илясов, СТО, Яндекс Еда и Маркет Деливери
«Искусство бенчмаркинга и оптимизации распределённых баз данных на примере YDB» — как бенчмарки и оптимизация помогают работать с серверами, на которых лежат петабайты данных.
Евгений Иванов, старший разработчик программного обеспечения, Yandex Infrastructure
«Ускоритель в масштабе планеты: как инженеры управляют временем» — доклад о технологиях, которые увеличили скорость целых городов и стран, и о том, что происходит уже сейчас и ждёт нас в будущем.
Алексей Гусаков, технический директор, Яндекс Поиск
Эти и другие доклады можно послушать 5 декабря. Офлайн — в Москве и Белграде, онлайн — из любой точки мира. Если придёте лично, сможете поучаствовать в нетворкинге, полайвкодить с коллегами и посоветоваться с HR Яндекса, как написать резюме.
Всё бесплатно, регистрируйтесь ↓
Зарегистрироваться
Реклама. ООО "Яндекс". erid:2VtzqxQAFsM
Как стать экспертом в разработке смарт-контрактов на блокчейне?Сделайте первые шаги на этом пути 27 ноября в 20:00 МСК на открытом уроке «Создание dApp (децентрализованного приложения) с Solidity».
Кстати, Вы знали, что Solidity – самый высокооплачиваемый язык программирования?
На открытом уроке мы:
1. Установим необходимые инструменты и настроим среду разработки.
2. Напишем смарт-контракт Solidity и скомпилируем код Solidity.
3. Развернем смарт-контракт и создадим web3 интерфейс к смарт-контракту.
Этот урок даст вам полное понимание ключевых аспектов разработки на базе блокчейн-технологий!
Для участия и получения записи зарегистрируйтесь: https://otus.ru/lessons/solidity-developer/?utm_source=telegram&utm_medium=cpm&utm_campaign=solidity&utm_term=seniorjavist&utm_content=lesson-27-11-2023#event-3575
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8KPBoW
Познакомьтесь с основами востребованного языка программирования Java на бесплатном мини-курсе Skillbox! На нём создают приложения для банков, IT-корпораций и стриминговых сервисов, разрабатывают интернет-магазины, игры и облачные решения.
Бессрочный доступ за пару кликов.
Сразу после регистрации пришлём гайд по профессии Java-разработчика 😉
Что вас ждёт:
✔️ Полезная теория
За 4 занятия изучите основы профессии и языка Java по видеоматериалам. Узнаете о перспективах языка и получите советы для старта карьеры.
✔️ Интересная практика
Напишете первые проекты: Telegram-бота, программу для обработки файлов и чат на фреймворке Spring. Опыт и знания в IT не нужны для их выполнения — будут подробные инструкции от спикера.
✔️ Живой эфир с экспертом по Java
В последний день в прямом эфире пообщаетесь с Даниилом Пилипенко, который более 19 лет работает в сфере Java и веб-разработки. Он ответит на вопросы о профессии, пройденном материале и практических работах.
🎁 За время обучения вы получите: 5 полезных материалов в подарок, сертификат на скидку 10 000 рублей на любой курс, персональную карьерную консультацию и доступ к изучению английского языка в Skillbox на год.
До встречи на мини-курсе. Старт после регистрации!
Избегаем техдолга, решаем проблемы с бинами в Spring и настраиваем JMX
На онлайн-митапе Сбера при поддержке JUG Ru Group.
🗓 22 ноября, 18:00 (МСК, GMT+3)
В программе:
✔ Михаил Сильванович, Максим Шестаков, Евгений Зубенко — «Да (не) инициализируйся ты уже!»
Что делать с ранней инициализацией bean'ов при инициализации контекста. Ищем bean'ы до их инициализации, работаем правильно с BeanFactory и BeanDefinition.
✔ Вячеслав Чернышов — «Приложение от проекта до релиза: этапы реализации»
Определяем верную последовательность этапов разработки на конкретных продуктовых примерах с использованием Java и Kotlin.
✔ Алексей Рагозин — «JMX (Java Management Extension) в 2023»
Архитектура JMX, его возможности. Профилирование, настройка в контейнерах и решение проблем.
Общайтесь с участниками митапа и задавайте вопросы спикерам в чате трансляции. Авторы лучших вопросов к каждому докладу получат сертификаты в магазин мерча SberShop.
➡️ Регистрация по ссылке.
Реклама. ПАО Сбербанк
События и слушатели
В Java события и слушатели используются для обработки событий, которые возникают в программе. События могут быть связаны с действиями пользователя, такими как клик мыши, нажатие клавиши или изменение текста в поле ввода, или с другими действиями, такими как завершение работы потока или получение данных из сети.
Слушатели (Listeners) в Java - это интерфейсы, которые позволяют регистрировать обработчики событий. Когда происходит событие, соответствующий слушатель вызывает метод обработки события, который реализуется классом, который зарегистрировал слушатель.
Итератор
Итератор — это объект, который предоставляет доступ к элементам коллекции (например, списку, множеству или массиву) и позволяет последовательно перебирать эти элементы без необходимости знать внутреннюю структуру коллекции. Итераторы используются для упрощения работы с коллекциями и обеспечивают абстракцию доступа к элементам.
#для_начинающих
🌟 Открываем двери в мир Scala-разработки! 🚀
Присоединяйтесь к бесплатному онлайн-занятию «Применение механизма implicits в Scala» от OTUS: регистрация
В рамках вебинара:
— Познакомимся с историей возникновения и мотивацией за разными компонентами данного механизма.
— Разберем возможности и опасности которые таят в себе implicit преобразования
— Узнаем, как использовать и для чего служат implicit параметры
— Рассмотрим правила, по которым Scala ищет подходящего implicit кандидата и какие требования к нему предъявляются.
Вебинар подойдет тем, кто имеет первичный опыт работы со Scala и хочет разобраться, как работает механизм implicit.
💼 По завершении урока вы сможете оформить полный курс в беспроцентную рассрочку
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8KKVRs
Как айтишнику вести сразу 2 проекта и зарабатывать на 70-80% больше?
📆 Дата: 14 ноября
🕒 Время: 19:00 по Киеву (GMT+2)
🌐 Онлайн
Вы хотите увеличить свой доход в IT-сфере и стать более продуктивным, управляя сразу двумя проектами и более ? Этот вебинар специально для вас!
✅ Как организовать рабочий процесс, чтобы эффективно управлять двумя проектами.
✅ Советы по планированию и приоритезации задач.
✅ Инструменты и методы для оптимизации времени.
✅ Как максимизировать ваш доход, работая над несколькими проектами.
Не упустите уникальную возможность узнать, как увеличить вашу прибыль и стать более успешным айтишником. Присоединяйтесь к нам 14 ноября в 19:00.
Ссылка на регистрацию на вебинар https://alekseykazavchinskiy.pulse.is
ThreadPoolExecutor
ThreadPoolExecutor — это класс в Java, который предоставляет управление пулами потоков для выполнения асинхронных задач. Он является частью пакета java.util.concurrent
, который предоставляет различные средства для работы с параллельными и асинхронными задачами.
#для_продвинутых
Перегрузка метода
Перегрузка метода (method overloading) — это механизм, который позволяет вам определить несколько методов с одним и тем же именем в одном классе, но с разными параметрами. Это означает, что вы можете иметь несколько методов с одинаковыми именами, но с разными списками параметров внутри одного класса.
Преимущество перегрузки методов заключается в том, что она позволяет создавать более гибкий и удобный интерфейс для использования методов в вашем классе. Пользователи вашего класса могут вызывать один и тот же метод с разными аргументами, и Java будет определять, какой из перегруженных методов вызывать, основываясь на сигнатуре метода.
#для_начинающих
Classpath
Classpath — это путь к директориям и JAR-файлам, которые используются приложением Java для поиска и загрузки классов и ресурсов во время выполнения. Классы Java, используемые в вашем приложении, должны быть доступны на этом пути, чтобы их можно было успешно загрузить и выполнить.
Важно следить за управлением classpath, чтобы ваши приложения имели доступ к необходимым классам и ресурсам.
#для_начинающих
Java varargs
Java varargs (variable arguments) — это механизм, предоставляемый Java, который позволяет методу принимать переменное количество аргументов одного типа. Он позволяет передавать любое количество аргументов заданного типа в метод, без явного указания массива аргументов.
Для объявления переменного количества аргументов в Java используется троеточие (...) после типа данных аргумента в определении метода.
#для_продвинутых
Как работать с базами данных еще эффективнее?
Узнайте на бесплатном открытом уроке «Индексы: структуры данных» от OTUS.
На вебинаре:
✅ рассмотрим, какие ситуации требуют использования индексов;
✅ объясним, как они помогают ускорить выполнение запросов и улучшить производительность системы;
✅ разберём структуры данных, на которых основаны индексы, включая бинарные деревья поиска, B-tree, сбалансированные деревья и хеш-таблицы;
✅ научимся использовать команду explain в PostgreSQL для анализа выполнения запросов.
📅 Занятие пройдёт 29 ноября в 20:00 мск в рамках курса «Highload Architect».
🌐 Для бесплатного участия и получения записи регистрируйтесь прямо сейчас: https://otus.pw/zPriv/
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8KNT7R
Команды Яндекс Еды и Лавки приглашают на бесплатный митап для бэкенд-разработчиков в Казани.
Программа:
— Инфра — стек еды и доставки.
— Монолит и микросервисы в Еде.
— Хайлоад Лавки.
И, конечно, afterparty в завершение вечера!
Место встречи: Казань, Event Hall
Время: 18:30, 23 ноября
Количество мест ограничено. Регистрация началась.
Подробнее
Реклама. ООО "ЯНДЕКС.ЕДА". ИНН 9705114405. erid: LjN8KbuDD
Строковый пул
Строковый пул (String Pool) в Java представляет собой механизм оптимизации, который используется для сокращения дублирования строковых объектов в памяти. Он работает на основе концепции интернирования строк.
Когда вы создаете строковый литерал в Java, например, с помощью двойных кавычек, JVM проверяет, есть ли уже такая строка в пуле. Если строка уже существует, то ссылка на нее возвращается, вместо создания нового объекта. Это позволяет сократить использование памяти и улучшить производительность.
#для_начинающих
Каскадность
Каскадность позволяет последовательно вызывать несколько методов на одном объекте без явного повторного указания имени объекта.
В Java каскадность реализуется с помощью возвращения ссылки на текущий объект из каждого метода, что позволяет вызывать другие методы на этой же ссылке. Таким образом, вы можете вызывать методы объекта, а затем непосредственно после них вызывать другие методы, которые также относятся к этому объекту.
#для_продвинутых
Метод Arrays.asList(T... a)
Метод Arrays.asList(T... a)
используется для создания списка (List) на основе массива (array) или набора элементов переменной длины типа T. Этот метод принимает набор элементов типа T в качестве аргументов переменной длины (varargs) и возвращает список, который оборачивает переданные элементы массивом.
Обратите внимание, что список, созданный с помощью Arrays.asList
, имеет фиксированный размер, и вы не можете добавлять или удалять элементы из него. Попытки изменить размер списка вызовут исключение UnsupportedOperationException
.
#для_продвинутых
Кэширование
Кэширование (caching) — это механизм хранения временных данных в оперативной памяти или на диске, чтобы улучшить производительность приложения. Кэширование позволяет избежать повторного вычисления или запроса данных, которые уже были получены или рассчитаны ранее.
#для_продвинутых
Блочная область видимости
Блочная область видимости (block scope) в Java - это область видимости, определенная фигурными скобками внутри метода, конструктора или другого блока кода, такого как условный оператор, цикл или блок try-catch
.
Переменные, объявленные в блочной области видимости, могут использоваться только в этой области видимости и любых вложенных областях видимости. Когда управление программой покидает блок кода, переменные, объявленные в этом блоке, выходят из области видимости, и их значения больше не доступны.
#для_начинающих
💻 Профессия «Java-разработчик»
Освойте язык крупного бизнеса и финансовых технологий и научитесь разрабатывать веб-приложения на фреймворке Spring.
Уже во время обучения вы вступите в программу «Карьерный трек», чтобы найти свою первую работу в IT.
Пройдите 5 бесплатных уроков и поймите, подходит ли вам профессия!
COSMO чёрная пятница: успейте получить скидку до 120 000р.
Расширяем горизонты Вселенной - добавим +6 месяцев сопровождения наставника и карьерного консультанта после завершения обучения.
Переходите по ссылке - https://ru.hexlet.io/link/sVPOKg, выбирайте скидку и забирайте подарки🎁
Реклама. АНПОО "ХЕКСЛЕТ КОЛЛЕДЖ". ИНН 7839056670. erid:LjN8K5PS2
System.arraycopySystem.arraycopy
используется для копирования элементов из одного массива в другой. Этот метод предоставляет эффективный способ копирования данных между массивами. Синтаксис System.arraycopy
:
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Параметры метода включают:src
: Исходный массив, из которого вы хотите скопировать элементы.srcPos
: Начальная позиция в исходном массиве, с которой начнется копирование.dest
: Целевой массив, в который вы хотите скопировать элементы.destPos
: Начальная позиция в целевом массиве, куда будут скопированы элементы.length
: Количество элементов, которое вы хотите скопировать.
#для_продвинутых
Как разделить строку на части?
В Java можно разделить строку на части с помощью метода split()
класса String
. Метод split()
разбивает исходную строку на массив строк, используя заданный разделитель.
В этом примере исходная строка «Это пример строки для разделения» разбивается на части с помощью пробела в качестве разделителя. Однако, если у вас есть другой разделитель (например, запятая или точка с запятой), просто замените значение переменной delimiter
на соответствующий разделитель в вашем случае.
#для_начинающих
Менеджеры компоновки
Менеджеры компоновки (Layout Manager) в Java используются для управления размещением компонентов в контейнерах, таких как JFrame, JPanel, или другие контейнеры Swing. Они обеспечивают автоматическое распределение компонентов в контейнере в соответствии с определенными правилами размещения.
#для_продвинутых
Что такое JIT компиляция?
JIT (Just-In-Time) компиляция — это техника оптимизации кода, которая используется для улучшения производительности приложений. Когда Java-программа запускается, она сначала компилируется в промежуточный байт-код (bytecode), который является платформонезависимым представлением кода. Затем этот байт-код выполняется виртуальной машиной Java (JVM).
JIT-компиляция происходит во время выполнения программы. Когда JVM выполняет байт-код, она анализирует и оптимизирует его на лету, переводя его в нативный машинный код, который может выполняться более эффективно на конкретной аппаратной платформе. Это позволяет улучшить производительность приложений, так как оптимизации выполняются с учетом конкретных характеристик и возможностей аппаратного оборудования, на котором работает JVM.
#для_продвинутых
Байт-код
Байт-код (bytecode) — это промежуточный код, который создается компилятором при компиляции исходного кода. Вместо того, чтобы компилировать исходный код напрямую в машинный код для конкретной архитектуры процессора (как это делается, например, в языках C или C++), Java компилирует исходный код в байт-код, который представляет собой набор инструкций, понимаемых JVM.
#для_начинающих
Можно ли наследоваться от строкового типа?
В Java нельзя наследоваться от строкового типа (String). Строковый тип — это класс String, который является финальным (final) классом, что означает, что его нельзя расширить другим классом. Финальный класс не может иметь подклассов.
Если вам нужно создать свой собственный тип данных для представления строк или добавить дополнительное поведение к строкам, вы можете создать свой собственный класс и включить в него объект типа String в качестве поля.
#для_начинающих
Отложенная инициализация
Отложенная инициализация — это паттерн проектирования, который позволяет отложить создание объекта до момента его реального использования. Он полезен, когда создание объекта требует значительных ресурсов или происходит в условиях, когда объект может не понадобиться.
В Java есть несколько способов реализации отложенной инициализации. Два наиболее распространенных подхода — это использование двойной проверки и использование внутреннего класса. На картинке мы рассмотрели использование двойной проверки (Double-Checked Locking).
#для_продвинутых