💙 С днем любви!
В этот день проявить любовь поможет подарок, который действительно нужен.
🌿 Курсы Proglib academy – это не только знания, топовые преподаватели из МГУ, спикеры Яндекса, Revolut и Тинькофф, но и возможность начать карьеру программиста на международном рынке.
Заходи на сайт, выбирай любой курс и дари его любимому человеку.
⚡️ А по промокоду PA2024SALES15 ты получишь скидку 15% на все курсы до конца недели – https://proglib.io/w/8eaaf202
В этот день проявить любовь поможет подарок, который действительно нужен.
Заходи на сайт, выбирай любой курс и дари его любимому человеку.
Please open Telegram to view this post
VIEW IN TELEGRAM
Интерфейс Delayed
Используется для объектов, у которых есть время истечения задержки.
Он позволяет организовать очередь объектов с учетом их задержки.
Основные методы:
getDelay(TimeUnit unit) — возвращает оставшееся время задержки в указанных единицах измерения.
compareTo(Delayed o) — сравнивает текущий объект с переданным по оставшемуся времени задержки.
Этот интерфейс реализуется классами, которые должны храниться в очереди с задержкой, например в DelayQueue.
Используется для объектов, у которых есть время истечения задержки.
Он позволяет организовать очередь объектов с учетом их задержки.
Основные методы:
getDelay(TimeUnit unit) — возвращает оставшееся время задержки в указанных единицах измерения.
compareTo(Delayed o) — сравнивает текущий объект с переданным по оставшемуся времени задержки.
Этот интерфейс реализуется классами, которые должны храниться в очереди с задержкой, например в DelayQueue.
Обработка исключений с помощью Try-With-Resources
Вот пример использования
💻 В этом примере открывается
После завершения блока
Try-With-Resources
- конструкция языка, введенная в Java 7, которая облегчает работу с ресурсами такими как файлы или сокеты и сокращает количество кода, необходимого для обработки исключений.Вот пример использования
Try-With-Resources
для чтения содержимого файла:try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader
внутри блока try
с помощью конструктора FileReader
. Затем можно безопасно читать файл внутри этого блока без необходимости явно закрывать ресурс.После завершения блока
try
автоматически вызывается метод close()
объекта reader
, который закрывает файл и освобождает связанные с ним ресурсы. Если возникнет исключение в блоке try
, его можно будет обработать в блоке catch после завершения работы с ресурсом.Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Книги для программистов
📚Clean Code Principles and Patterns: A Software Practitioner’s Handbook (2023)
✍️Автор: Petri Silén
📃Страниц: 489
Это одно из самых полных руководств для разработчиков программного обеспечения, которое поможет им писать чистый код каждый день. В книге собраны принципы и паттерны, которые помогут разработчикам, от новичков и юниоров до пенсионеров и экспертов, писать более чистый код. Принципы и паттерны, представленные в книге, сопровождаются реалистичными, но понятными примерами, чтобы помочь читателю лучше понять их. Примеры написаны на языках Java, JavaScript/TypeScript и C++. Большинство примеров напрямую применимы и к другим языкам программирования. Читатель должен обладать базовыми знаниями одного из объектно-ориентированных языков программирования, чтобы получить полную пользу от этой книги.
Скачать книгу
✍️Автор: Petri Silén
📃Страниц: 489
Это одно из самых полных руководств для разработчиков программного обеспечения, которое поможет им писать чистый код каждый день. В книге собраны принципы и паттерны, которые помогут разработчикам, от новичков и юниоров до пенсионеров и экспертов, писать более чистый код. Принципы и паттерны, представленные в книге, сопровождаются реалистичными, но понятными примерами, чтобы помочь читателю лучше понять их. Примеры написаны на языках Java, JavaScript/TypeScript и C++. Большинство примеров напрямую применимы и к другим языкам программирования. Читатель должен обладать базовыми знаниями одного из объектно-ориентированных языков программирования, чтобы получить полную пользу от этой книги.
Скачать книгу
#вопросы_с_собеседований
Можно ли так реализовать метод equals?
Нельзя, так как метод hashCode() не гарантирует уникальность значения для каждого объекта.
Но для сравнения экземпляров объекта Object такой метод допустим, так как там хешкод вычисляется на основании использовании адреса объекта в памяти, поэтому он уникален для разных объектов.
Можно ли так реализовать метод equals?
Нельзя, так как метод hashCode() не гарантирует уникальность значения для каждого объекта.
Но для сравнения экземпляров объекта Object такой метод допустим, так как там хешкод вычисляется на основании использовании адреса объекта в памяти, поэтому он уникален для разных объектов.
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
💸 Рост или падение? Изменение зарплат в IT за 2023 год
Чтобы разобраться в этом вопросе, «Библиотека программиста» решила провести опрос среди читателей издания. Мы хотим понять, выросли ли ваши зарплаты в 2023 году и если да, то на сколько процентов. Или может быть наоборот — ваши доходы снизились на фоне кризисных явлений в экономике?
Примите участие в нашем коротком опросе и поделитесь своим мнением! Вместе мы проанализируем текущую ситуацию на рынке труда в IT-сфере и поймем, что ждёт эту отрасль дальше. Ждём ваших ответов!
Опрос займёт у вас примерно 4 минуты.
👉 Ссылка на опрос
Чтобы разобраться в этом вопросе, «Библиотека программиста» решила провести опрос среди читателей издания. Мы хотим понять, выросли ли ваши зарплаты в 2023 году и если да, то на сколько процентов. Или может быть наоборот — ваши доходы снизились на фоне кризисных явлений в экономике?
Примите участие в нашем коротком опросе и поделитесь своим мнением! Вместе мы проанализируем текущую ситуацию на рынке труда в IT-сфере и поймем, что ждёт эту отрасль дальше. Ждём ваших ответов!
Опрос займёт у вас примерно 4 минуты.
👉 Ссылка на опрос
⛩️ 6 способов нестандартно войти в Айти
Стандартный способ вхождения в профессию программиста — через универ. Все, что отличается от него, уже считается нестандартным способом. Разбираем несколько необычных способов входа в ИТ-сферу и то, какие преимущества они дают:
🛤 Роадмапы
👨💻 Знакомые айтишники
💬 Комментарии
🙌 Менторинг
🕹 Игры
⌨️ Стажировки
Стандартный способ вхождения в профессию программиста — через универ. Все, что отличается от него, уже считается нестандартным способом. Разбираем несколько необычных способов входа в ИТ-сферу и то, какие преимущества они дают:
🛤 Роадмапы
👨💻 Знакомые айтишники
💬 Комментарии
🙌 Менторинг
🕹 Игры
⌨️ Стажировки
🍋 Подборка лучших статей «Библиотеки программиста» за январь: сохраняй в заметки, чтобы не пропустить #самыйсок
😺🐙📄 Как разместить резюме на GitHub Pages
🏖️ Синдром упущенного отпуска: почему так опасно игнорировать заслуженный отдых
🏦⚠️ Борьба с ошибками разработки ПО в финтехе
👨💻🧩 Психология и ИТ: 17 личностных качеств, необходимых для успешной карьеры
🐻❄️ Быстрее Pandas в 10 раз: Polars — высокопроизводительная библиотека для анализа больших данных на Python
🔤 Азбука SQL в примерах. Часть 3. Обрабатываем результаты и делаем сложные запросы
🚀🏢 Стартапы vs IT-гиганты: куда лучше устроиться Junior-разработчику
🧑💻 Особенности работы в айти: результаты опроса подписчиков
😺🐙📄 Как разместить резюме на GitHub Pages
🏖️ Синдром упущенного отпуска: почему так опасно игнорировать заслуженный отдых
🏦⚠️ Борьба с ошибками разработки ПО в финтехе
👨💻🧩 Психология и ИТ: 17 личностных качеств, необходимых для успешной карьеры
🐻❄️ Быстрее Pandas в 10 раз: Polars — высокопроизводительная библиотека для анализа больших данных на Python
🔤 Азбука SQL в примерах. Часть 3. Обрабатываем результаты и делаем сложные запросы
🚀🏢 Стартапы vs IT-гиганты: куда лучше устроиться Junior-разработчику
🧑💻 Особенности работы в айти: результаты опроса подписчиков
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🤔 Остаться или уйти? Оптимальный срок работы на одном месте
Вы любите свою работу, интересные проекты вам гарантированы, зарплата повышается каждый год. Но вот уже 5 лет вы трудитесь в одной и той же компании. Не пора ли что-то изменить, пока мотивация окончательно не улетучилась?
Многие опытные айтишники сталкиваются с такой дилеммой. С одной стороны, текущее место работы устраивает. С другой — хочется разнообразия, новых задач и знаний.
Должен ли современный IT-специалист менять работу чаще, чем раз в 5 лет? Или лучше наращивать экспертизу в рамках одной компании? А может дело совсем не в сроках, а в качестве задач и развитии карьеры?
👉 Расскажите о своём опыте в нашем новом опросе 👈
Вы любите свою работу, интересные проекты вам гарантированы, зарплата повышается каждый год. Но вот уже 5 лет вы трудитесь в одной и той же компании. Не пора ли что-то изменить, пока мотивация окончательно не улетучилась?
Многие опытные айтишники сталкиваются с такой дилеммой. С одной стороны, текущее место работы устраивает. С другой — хочется разнообразия, новых задач и знаний.
Должен ли современный IT-специалист менять работу чаще, чем раз в 5 лет? Или лучше наращивать экспертизу в рамках одной компании? А может дело совсем не в сроках, а в качестве задач и развитии карьеры?
👉 Расскажите о своём опыте в нашем новом опросе 👈
Forwarded from Библиотека задач по Java | тесты, код, задания
Задача с LeetCode (Max Consecutive Ones)
Дан массив, состоящий только из ноликов и единиц. Необходимо вычислить максимальную длину подмассива, в котором присутствуют только единицы (1, 1, 0, 1, 1, 1 | Длина — 3).
⏺️ Переменные count и max равны 0. count используется для подсчета текущего количества последовательных единиц, а max — для хранения максимального значения.
⏺️ Внутри цикла for проверяется, является ли текущий элемент массива nums[i] равным 1. Если да, то увеличиваем значение count на 1. Если нет, то count присваивается значение 0, так как последовательность прерывается.
⏺️ Функция Math.max(count, max) находит максимальное значение между count и max. Значение count обновляется на каждой итерации цикла, поэтому теперь max будет содержать максимальное количество последовательных единиц на текущей итерации.
Дан массив, состоящий только из ноликов и единиц. Необходимо вычислить максимальную длину подмассива, в котором присутствуют только единицы (1, 1, 0, 1, 1, 1 | Длина — 3).
⏺️ Переменные count и max равны 0. count используется для подсчета текущего количества последовательных единиц, а max — для хранения максимального значения.
⏺️ Внутри цикла for проверяется, является ли текущий элемент массива nums[i] равным 1. Если да, то увеличиваем значение count на 1. Если нет, то count присваивается значение 0, так как последовательность прерывается.
⏺️ Функция Math.max(count, max) находит максимальное значение между count и max. Значение count обновляется на каждой итерации цикла, поэтому теперь max будет содержать максимальное количество последовательных единиц на текущей итерации.
⚡️IT-конференция про облачные технологии
Когда все случится: в Москве 21 марта в 10:00 в офлайн формате.
Что будет?
🔹 3 тематических трека про новую облачную платформу, прорывные технологии и клиентские инсайты
🔹 20 сессий с экспертами из мира облачных технологий
Live-демонстрации облачных платформ и сервисов
🔹 Нетворкинг с разработчиками и идеологами продуктов Cloud.ru
figure
Ключевые темы:
👉 Облако и бизнес: реальные кейсы российских компаний вместе с Cloud.ru
👉 Мир open source: последние разработки
👉 Демонстрация новой облачной платформы
👉 Обсуждаем SDS, SDN, Serverless и не только
Регистрация тут
#мероприятие
Когда все случится: в Москве 21 марта в 10:00 в офлайн формате.
Что будет?
🔹 3 тематических трека про новую облачную платформу, прорывные технологии и клиентские инсайты
🔹 20 сессий с экспертами из мира облачных технологий
Live-демонстрации облачных платформ и сервисов
🔹 Нетворкинг с разработчиками и идеологами продуктов Cloud.ru
figure
Ключевые темы:
👉 Облако и бизнес: реальные кейсы российских компаний вместе с Cloud.ru
👉 Мир open source: последние разработки
👉 Демонстрация новой облачной платформы
👉 Обсуждаем SDS, SDN, Serverless и не только
Регистрация тут
#мероприятие
☕️📦 10 Java-библиотек, которые изменят твой код навсегда
Из этой статьи вы узнаете о ключевых возможностях 10 популярных библиотек для Java: работа с коллекциями, строками, JSON, логами, датами и временем и многое другое.
Читать статью
Из этой статьи вы узнаете о ключевых возможностях 10 популярных библиотек для Java: работа с коллекциями, строками, JSON, логами, датами и временем и многое другое.
Читать статью
Очередной #дайджест для джавистов
⭕ Задачи от Tinkoff для Junior Java developers — тренировка для начинающих разработчиков на знание Java core
⭕ Java в контейнере — особенности эксплуатации
⭕ Spring Boot — реактивный асинхронный неблокирующий REST vs традиционный синхронный блокирующий
⭕ Декоратор. Шаблоны проектирования в деталях — автор рассказывает о популярных шаблонах проектирования с примерами кода на языке программирования Java
⭕ Введение в коллекции Java — в статье не будут сильно углубляться в детали каждой коллекции в отдельности, ведь чтобы начать ими пользоваться, достаточно хотя бы на базовом уровне понять, что это такое и с чем это «едят»
⭕ Задачи от Tinkoff для Junior Java developers — тренировка для начинающих разработчиков на знание Java core
⭕ Java в контейнере — особенности эксплуатации
⭕ Spring Boot — реактивный асинхронный неблокирующий REST vs традиционный синхронный блокирующий
⭕ Декоратор. Шаблоны проектирования в деталях — автор рассказывает о популярных шаблонах проектирования с примерами кода на языке программирования Java
⭕ Введение в коллекции Java — в статье не будут сильно углубляться в детали каждой коллекции в отдельности, ведь чтобы начать ими пользоваться, достаточно хотя бы на базовом уровне понять, что это такое и с чем это «едят»
Forwarded from Библиотека собеса по Java | вопросы с собеседований
DatagramPacket
DatagramPacket — это класс в Java, который представляет собой пакет датаграмм. Датаграммы используются для реализации бессоединительной службы доставки пакетов. Это означает, что каждый пакет отправляется независимо от других пакетов, и нет гарантии, что они будут доставлены в том же порядке, в котором были отправлены.
DatagramPacket — это класс в Java, который представляет собой пакет датаграмм. Датаграммы используются для реализации бессоединительной службы доставки пакетов. Это означает, что каждый пакет отправляется независимо от других пакетов, и нет гарантии, что они будут доставлены в том же порядке, в котором были отправлены.
🖐️🖐️ Infra Meetup
Митап состоится 29 февраля 18:00 в Санкт-Петербурге.
Будет три доклада об инструментах надежности в Такси, платформе биллинга Екома и Райдтеха и возможностях фреймворка userver для поддержания отказоустойчивости.
Инструменты надежности Такси
Спикер расскажет о программных инструментах и процессах, позволяющих обеспечивать бесперебойную работу Такси даже при повышенной нагрузке, предотвращать аварии и быстро подниматься в случае инцидента.
Роль фреймворка в отказоустойчивой архитектуре
При разработке сервисов Яндекса важна отказоустойчивость, ведь любой простой — деньги для бизнеса. В нашем open-source C++ фреймворке userver есть специальные фишки и инструменты для поддержания отказоустойчивости.
Надежность платформы биллинга
Спикер выступит с рассказом о платформе биллинга Екома и Райдтеха в Яндексе, обслуживающей многомиллиардные финансовые потоки. Объяснит, из чего состоит платформа, какие задачи решает и как команды обеспечивают ее надежность. Опишет комбинации архитектурных, продуктовых и процессных подходов к проблеме надежности биллинга.
Регистрация тут
Митап состоится 29 февраля 18:00 в Санкт-Петербурге.
Будет три доклада об инструментах надежности в Такси, платформе биллинга Екома и Райдтеха и возможностях фреймворка userver для поддержания отказоустойчивости.
Инструменты надежности Такси
Спикер расскажет о программных инструментах и процессах, позволяющих обеспечивать бесперебойную работу Такси даже при повышенной нагрузке, предотвращать аварии и быстро подниматься в случае инцидента.
Роль фреймворка в отказоустойчивой архитектуре
При разработке сервисов Яндекса важна отказоустойчивость, ведь любой простой — деньги для бизнеса. В нашем open-source C++ фреймворке userver есть специальные фишки и инструменты для поддержания отказоустойчивости.
Надежность платформы биллинга
Спикер выступит с рассказом о платформе биллинга Екома и Райдтеха в Яндексе, обслуживающей многомиллиардные финансовые потоки. Объяснит, из чего состоит платформа, какие задачи решает и как команды обеспечивают ее надежность. Опишет комбинации архитектурных, продуктовых и процессных подходов к проблеме надежности биллинга.
Регистрация тут
Forwarded from Библиотека собеса по Java | вопросы с собеседований
CopyOnWriteArrayList
CopyOnWriteArrayList — это реализация интерфейса List, оптимизированная для работы в многопоточном окружении.
Основное отличие этой коллекции в том, что все модифицирующие операции (добавление, удаление элементов) не изменяют существующий массив, а создают его копию.
Это позволяет избежать необходимости синхронизации для потокобезопасного чтения.
CopyOnWriteArrayList полезен в ситуациях, когда чтение данных происходит гораздо чаще, чем изменение. Например, при реализации общего кэша в многопоточном приложении.
CopyOnWriteArrayList — это реализация интерфейса List, оптимизированная для работы в многопоточном окружении.
Основное отличие этой коллекции в том, что все модифицирующие операции (добавление, удаление элементов) не изменяют существующий массив, а создают его копию.
Это позволяет избежать необходимости синхронизации для потокобезопасного чтения.
CopyOnWriteArrayList полезен в ситуациях, когда чтение данных происходит гораздо чаще, чем изменение. Например, при реализации общего кэша в многопоточном приложении.