#вопросы_с_собеседований
Что такое «потоки-демоны»?
Что такое «потоки-демоны»?
В мае языку Java исполнилось 25 лет и, чтобы отпраздновать эту важную дату, мы проведем для джавистов онлайн-митап 🎂
Поговорим про микросервисную архитектуру, рассмотрим применение Java 11 в контейнерной среде, сделаем тесты на примере Spring Boot и посмотрим на частые ошибки при проектировании Java-приложений.
Наши спикеры:
Дмитрий Чуйко, Senior Performance Architect в BellSoft, участник OpenJDK
Маргарита Богданова, Team Lead, Architect, DataArt
Александр Линьков, Tech Lead, Leroy Merlin
Комментарии от экспертов:
Алексей Картынник, .NET-разработчик и автор ютуб-канала АйТиБорода
Евгений Нестеров, System Architect в МВидео
Когда: 24 сентября в 18:00
Регистрация и подробности докладов
Чат митапа
Поговорим про микросервисную архитектуру, рассмотрим применение Java 11 в контейнерной среде, сделаем тесты на примере Spring Boot и посмотрим на частые ошибки при проектировании Java-приложений.
Наши спикеры:
Дмитрий Чуйко, Senior Performance Architect в BellSoft, участник OpenJDK
Маргарита Богданова, Team Lead, Architect, DataArt
Александр Линьков, Tech Lead, Leroy Merlin
Комментарии от экспертов:
Алексей Картынник, .NET-разработчик и автор ютуб-канала АйТиБорода
Евгений Нестеров, System Architect в МВидео
Когда: 24 сентября в 18:00
Регистрация и подробности докладов
Чат митапа
Потоки-демоны работают в фоновом режиме вместе с программой, но не являются неотъемлемой частью программы. Если какой-либо процесс может выполняться на фоне работы основных потоков выполнения и его деятельность заключается в обслуживании основных потоков приложения, то такой процесс может быть запущен как поток-демон с помощью метода setDaemon(boolean value), вызванного у потока до его запуска. Метод boolean isDaemon() позволяет определить, является ли указанный поток демоном или нет. Базовое свойство потоков-демонов заключается в возможности основного потока приложения завершить выполнение потока-демона (в отличие от обычных потоков) с окончанием кода метода main(), не обращая внимания на то, что поток-демон еще работает.
23 сентября в 19:00 (МСК) мы будем проводить вебинар “Зачем нужна математика в Data Science”.
Спикеры вебинара:
Алексей Никитин. Кандидат физико-математических наук, доцент факультета ВМК МГУ. Читает лекции по математическому анализу первых двух курсов на факультете ВМК МГУ и ФКН ВШЭ.
Леонид Крицков. Кандидат физико-математических наук, доцент факультета ВМК МГУ. Автор задачника "Алгебра и аналитическая геометрия: теоремы и задачи", используемого в преподавании на факультете ВМК МГУ.
Татьяна Захарова. Кандидат физико-математических наук, доцент факультета ВМК МГУ. Имеет опыт преподавания теории вероятностей и математической статистики более 28 лет.
На этом вебинаре мы расскажем:
• Data Science и математика: почему одно без другого невозможно
• Пример. Как математика описывает нейронную сеть
• Области Data Science и связанные разделы математики
• Где этому можно научиться
Ведущим будет Артём Дрёмов, CEO Proglib
Будет полезно всем, кто хочет стать специалистом в анализе данных.
Спикеры вебинара:
Алексей Никитин. Кандидат физико-математических наук, доцент факультета ВМК МГУ. Читает лекции по математическому анализу первых двух курсов на факультете ВМК МГУ и ФКН ВШЭ.
Леонид Крицков. Кандидат физико-математических наук, доцент факультета ВМК МГУ. Автор задачника "Алгебра и аналитическая геометрия: теоремы и задачи", используемого в преподавании на факультете ВМК МГУ.
Татьяна Захарова. Кандидат физико-математических наук, доцент факультета ВМК МГУ. Имеет опыт преподавания теории вероятностей и математической статистики более 28 лет.
На этом вебинаре мы расскажем:
• Data Science и математика: почему одно без другого невозможно
• Пример. Как математика описывает нейронную сеть
• Области Data Science и связанные разделы математики
• Где этому можно научиться
Ведущим будет Артём Дрёмов, CEO Proglib
Будет полезно всем, кто хочет стать специалистом в анализе данных.
🎱 Сможет ли программа заменить Data Scientist: платформы для машинного обучения без программирования
Было бы здорово, если бы модель машинного обучения можно было просто перетащить иконкой в проект, drag-and-drop. Стоп… но ведь такое уже есть! Рассказываем о восьми сервисах автоматизации задач Data Science.
https://proglib.io/sh/a9nuG1hfkY
Было бы здорово, если бы модель машинного обучения можно было просто перетащить иконкой в проект, drag-and-drop. Стоп… но ведь такое уже есть! Рассказываем о восьми сервисах автоматизации задач Data Science.
https://proglib.io/sh/a9nuG1hfkY
💪📱 10 инструментов тестирования производительности мобильных приложений
Сравниваем инструменты тестирования производительности мобильных приложений, в том числе предоставляемые услуги и стоимость: Gatling, JMeter, Apptim и другие.
https://proglib.io/sh/o514GkpwBL
Сравниваем инструменты тестирования производительности мобильных приложений, в том числе предоставляемые услуги и стоимость: Gatling, JMeter, Apptim и другие.
https://proglib.io/sh/o514GkpwBL
#вопросы_с_собеседований
Как работает метод Thread.join()?
Как работает метод Thread.join()?
Когда поток вызывает join() для другого потока, текущий работающий поток будет ждать, пока другой поток, к которому он присоединяется, не будет завершён:
void join()
void join(long millis)
void join(long millis, int nanos)
void join()
void join(long millis)
void join(long millis, int nanos)
#вопросы_с_собеседований
Какие существуют уровни изолированности транзакций?
Какие существуют уровни изолированности транзакций?
В порядке увеличения изолированности транзакций и, соответственно, надёжности работы с данными:
☕️ Чтение неподтверждённых данных (грязное чтение) (read uncommitted, dirty read) — чтение незафиксированных изменений как своей транзакции, так и параллельных транзакций. Нет гарантии, что данные, изменённые другими транзакциями, не будут в любой момент изменены в результате их отката, поэтому такое чтение является потенциальным источником ошибок. Невозможны потерянные изменения, возможны неповторяемое чтение и фантомы.
☕️ Чтение подтверждённых данных (read committed) — чтение всех изменений своей транзакции и зафиксированных изменений параллельных транзакций. Потерянные изменения и грязное чтение не допускается, возможны неповторяемое чтение и фантомы.
☕️ Повторяемость чтения (repeatable read, snapshot) — чтение всех изменений своей транзакции, любые изменения, внесённые параллельными транзакциями после начала своей, недоступны. Потерянные изменения, грязное и неповторяемое чтение невозможны, возможны фантомы.
☕️ Упорядочиваемость (serializable) — результат параллельного выполнения сериализуемой транзакции с другими транзакциями должен быть логически эквивалентен результату их какого-либо последовательного выполнения. Проблемы синхронизации не возникают.
☕️ Чтение неподтверждённых данных (грязное чтение) (read uncommitted, dirty read) — чтение незафиксированных изменений как своей транзакции, так и параллельных транзакций. Нет гарантии, что данные, изменённые другими транзакциями, не будут в любой момент изменены в результате их отката, поэтому такое чтение является потенциальным источником ошибок. Невозможны потерянные изменения, возможны неповторяемое чтение и фантомы.
☕️ Чтение подтверждённых данных (read committed) — чтение всех изменений своей транзакции и зафиксированных изменений параллельных транзакций. Потерянные изменения и грязное чтение не допускается, возможны неповторяемое чтение и фантомы.
☕️ Повторяемость чтения (repeatable read, snapshot) — чтение всех изменений своей транзакции, любые изменения, внесённые параллельными транзакциями после начала своей, недоступны. Потерянные изменения, грязное и неповторяемое чтение невозможны, возможны фантомы.
☕️ Упорядочиваемость (serializable) — результат параллельного выполнения сериализуемой транзакции с другими транзакциями должен быть логически эквивалентен результату их какого-либо последовательного выполнения. Проблемы синхронизации не возникают.
Как принудительно запустить поток?
Никак. В Java не существует абсолютно никакого способа принудительного запуска потока. Это контролируется JVM и Java не предоставляет никакого API для управления этим процессом.
#вопросы_с_собеседований
Для чего в стримах предназначен метод sorted()?
Для чего в стримах предназначен метод sorted()?
Хочешь быть дата сайентистом?
Мы, Библиотека программиста, вместе с преподавателями из МГУ запускаем курс "Математика в Data Science"
Старт курса — 6 октября.
https://courses.proglib.io/
Мы, Библиотека программиста, вместе с преподавателями из МГУ запускаем курс "Математика в Data Science"
Старт курса — 6 октября.
https://courses.proglib.io/
Метод sorted() является промежуточной операцией, которая позволяет сортировать значения либо в натуральном порядке, либо задавая Comparator.
Порядок элементов в исходной коллекции остается нетронутым - sorted() всего лишь создает его отсортированное представление.
Порядок элементов в исходной коллекции остается нетронутым - sorted() всего лишь создает его отсортированное представление.
#вопросы_с_собеседований
Расскажите об интерфейсе SingleThreadModel.
Расскажите об интерфейсе SingleThreadModel.
Интерфейс SingleThreadModel является маркерным - в нем не объявлен ни один метод, однако, если сервлет реализует этот интерфейс, то метод service() этого сервлета гарантированно не будет одновременно выполняться в двух потоках. Контейнер сервлетов либо синхронизирует обращения к единственному экземпляру, либо обеспечивает поддержку пула экземпляров и перенаправление запроса свободному сервлету. Другими словами, контейнер гарантирует отсутствие конфликтов при одновременном обращении к переменным или методам экземпляра сервлета. Однако существуют также и другие разделяемые ресурсы, которые даже при использовании этого интерфейса остаются всё так же доступны обработчикам запросов в других потоках. Т.е. пользы от использования этого интерфейса немного и в спецификации Servlet 2.4 он был объявлен deprecated.
The Complete Coding Interview Guide in Java (2020)
Автор: Anghel Leonard
Количество страниц: 788
Java - один из самых востребованных языков программирования на рынке труда, но пройти собеседование на начальную позицию для начинающего программиста может оказаться сложной задачей. Это подробное руководство поможет вам справиться с различными задачами на собеседовании и избежать распространенных ошибок, чтобы в итоге получить работу.
Скачать книгу
Автор: Anghel Leonard
Количество страниц: 788
Java - один из самых востребованных языков программирования на рынке труда, но пройти собеседование на начальную позицию для начинающего программиста может оказаться сложной задачей. Это подробное руководство поможет вам справиться с различными задачами на собеседовании и избежать распространенных ошибок, чтобы в итоге получить работу.
Скачать книгу
Telegram
Книги для программистов (reserved)
The Complete Coding Interview Guide in Java (2020)
Автор: Anghel Leonard
Автор: Anghel Leonard
Какая математика нужна для Data Science? Интервью с преподавателями МГУ
Всё, что вы хотели знать о математике для анализа данных, но не знали, у кого спросить.
https://proglib.io/w/fa2f98d1
Всё, что вы хотели знать о математике для анализа данных, но не знали, у кого спросить.
https://proglib.io/w/fa2f98d1
YouTube
Какая математика нужна для Data Science? Интервью с преподавателями МГУ
Всё, что вы хотели знать о математике для анализа данных, но не знали, у кого спросить.
Сайт издания «Библиотека программиста» — https://proglib.io
Ссылка на курс: https://courses.proglib.io/?utm_source=youtube&utm_medium=webinar0&utm_campaign=had
Сайт издания «Библиотека программиста» — https://proglib.io
Ссылка на курс: https://courses.proglib.io/?utm_source=youtube&utm_medium=webinar0&utm_campaign=had