💪📱 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
#вопросы_с_собеседований
Чем отличаются два интерфейса Runnable и Callable?
Чем отличаются два интерфейса Runnable и Callable?
Data Scientist-ы больше не нужны?
Может ли программа заменить специалиста? Рассказываем о существующих сервисах автоматизации машинного обучения.
https://proglib.io/sh/a9nuG1hfkY
Может ли программа заменить специалиста? Рассказываем о существующих сервисах автоматизации машинного обучения.
https://proglib.io/sh/a9nuG1hfkY
☕️ Интерфейс Runnable появился в Java 1.0, а интерфейс Callable был введен в Java 5.0 в составе библиотеки java.util.concurrent;
☕️ Классы, реализующие интерфейс Runnable для выполнения задачи, должны реализовывать метод run(). Классы, реализующие интерфейс Callable - метод call();
☕️ Метод Runnable.run() не возвращает никакого значения, Callable.call() возвращает объект Future, который может содержать результат вычислений;
☕️ Метод run() не может выбрасывать проверяемые исключения, в то время как метод call() может.
☕️ Классы, реализующие интерфейс Runnable для выполнения задачи, должны реализовывать метод run(). Классы, реализующие интерфейс Callable - метод call();
☕️ Метод Runnable.run() не возвращает никакого значения, Callable.call() возвращает объект Future, который может содержать результат вычислений;
☕️ Метод run() не может выбрасывать проверяемые исключения, в то время как метод call() может.
#вопросы_с_собеседований
Что такое cookies?
Что такое cookies?