Java All-in-One For Dummies (2020)
Автор: Doug Lowe
Количество страниц: 960
Если вы всегда хотели научиться программировать на Java, но не знали, с чего начать, эта книга вам подойдет. Она послужит не только учебником, но и сопровождающим в работе справочным материалом, где всегда можно найти ответ на любой вопрос о тонкостях языка.
Скачать книгу
Автор: Doug Lowe
Количество страниц: 960
Если вы всегда хотели научиться программировать на Java, но не знали, с чего начать, эта книга вам подойдет. Она послужит не только учебником, но и сопровождающим в работе справочным материалом, где всегда можно найти ответ на любой вопрос о тонкостях языка.
Скачать книгу
Telegram
Книги для программистов (reserved)
Java All-in-One For Dummies (2020)
Автор: Doug Lowe
Автор: Doug Lowe
В чём различия между volatile и Atomic переменными?
volatile
принуждает использовать единственный экземпляр переменной, но не гарантирует атомарность. Например, операция count++
не станет атомарной просто потому, что count
объявлена volatile
. C другой стороны class AtomicInteger
предоставляет атомарный метод для выполнения таких комплексных операций атомарно, например getAndIncrement()
– атомарная замена оператора инкремента, его можно использовать, чтобы атомарно увеличить текущее значение на один. Похожим образом сконструированы атомарные версии и для других типов данных.Начинай с PMI.
Программа развития в IT в международной компании!
За полтора года на программе IT Inkompass ты изучишь ключевые кейсы в анализе данных бизнес-процессов и настройке дашбордов . Под руководством ментора ты будешь заниматься сбором и обработкой данных, разработкой функций и упаковкой их в микросервисы. Успей подать заявку – https://vk.cc/c5O1Jy
Что мы предлагаем?
· заработная плата — 80 000 рублей, ДМС и компенсация питания;
· длительность программы развития – 18 месяцев;
· оформление в штат компании сразу на старте программы;
· возможность работать как в классном современном офисе, так и удаленно.
Спеши подать заявку: https://vk.cc/c5O1Jy
Программа развития в IT в международной компании!
За полтора года на программе IT Inkompass ты изучишь ключевые кейсы в анализе данных бизнес-процессов и настройке дашбордов . Под руководством ментора ты будешь заниматься сбором и обработкой данных, разработкой функций и упаковкой их в микросервисы. Успей подать заявку – https://vk.cc/c5O1Jy
Что мы предлагаем?
· заработная плата — 80 000 рублей, ДМС и компенсация питания;
· длительность программы развития – 18 месяцев;
· оформление в штат компании сразу на старте программы;
· возможность работать как в классном современном офисе, так и удаленно.
Спеши подать заявку: https://vk.cc/c5O1Jy
Что произойдет в результате компиляции кода?
Anonymous Quiz
64%
Ошибка компиляции в строке 4.
5%
Ошибка компиляции в строке 5.
7%
Ошибка компиляции в строке 6.
24%
Код скомпилируется успешно
Рассказываем, как пройти один курс и зарабатывать под 100 000 ₽!
Сейчас в мире много возможностей и интересных, высокооплачиваемых профессий, в некоторых даже новички удаленно зарабатывают от 95 000₽, а после двух лет работы — до 340 000 ₽.
Одна из таких профессий — Java-разработчик!
Стать таким специалистом можно, например, в Skypro. Там после обучения выдают диплом государственного образца и помогают с трудоустройством: подбирают вакансии, натаскивают на собеседования с HR, подсказывают с резюме. Бонусом каждый выпускник забирает с собой портфолио с двумя готовыми проектами.
Вы сможете создавать собственные финансовые приложения, социальные сети и сайты.
Переходи по ссылке с уникальным предложением в честь старта потока и освой востребованную профессию с дополнительной скидкой 10% по промокоду «УЧИСЬ» - https://go.skyeng.ru/javaproglib_skypro
Сейчас в мире много возможностей и интересных, высокооплачиваемых профессий, в некоторых даже новички удаленно зарабатывают от 95 000₽, а после двух лет работы — до 340 000 ₽.
Одна из таких профессий — Java-разработчик!
Стать таким специалистом можно, например, в Skypro. Там после обучения выдают диплом государственного образца и помогают с трудоустройством: подбирают вакансии, натаскивают на собеседования с HR, подсказывают с резюме. Бонусом каждый выпускник забирает с собой портфолио с двумя готовыми проектами.
Вы сможете создавать собственные финансовые приложения, социальные сети и сайты.
Переходи по ссылке с уникальным предложением в честь старта потока и освой востребованную профессию с дополнительной скидкой 10% по промокоду «УЧИСЬ» - https://go.skyeng.ru/javaproglib_skypro
#вопросы_с_собеседований
Чем отличается работа метода wait() с параметром и без параметра?
Чем отличается работа метода wait() с параметром и без параметра?
wait() без параметров освобождает монитор и переводит вызывающий поток в состояние ожидания до тех пор, пока другой поток не вызовет метод notify()/ notifyAll(),
с параметрами заставит поток ожидать заданное количество времени или вызова notify()/ notifyAll().
с параметрами заставит поток ожидать заданное количество времени или вызова notify()/ notifyAll().
#вопросы_с_собеседований
Что такое double checked locking Singleton?
Что такое double checked locking Singleton?
double checked locking Singleton - это один из способов создания потокобезопасного класса, реализующего шаблон Одиночка. Данный метод пытается оптимизировать производительность, блокируясь только случае, когда экземпляр одиночки создаётся впервые.
Следует заметить, что требование volatile обязательно. Проблема Double Checked Lock заключается в модели памяти Java, точнее в порядке создания объектов, когда возможна ситуация, при которой другой поток может получить и начать использовать (на основании условия, что указатель не нулевой) не полностью сконструированный объект. Хотя эта проблема была частично решена в JDK 1.5, рекомендация использовать volatile для Double Cheсked Lock остаётся в силе.
Следует заметить, что требование volatile обязательно. Проблема Double Checked Lock заключается в модели памяти Java, точнее в порядке создания объектов, когда возможна ситуация, при которой другой поток может получить и начать использовать (на основании условия, что указатель не нулевой) не полностью сконструированный объект. Хотя эта проблема была частично решена в JDK 1.5, рекомендация использовать volatile для Double Cheсked Lock остаётся в силе.
Пора сбросить хвост устаревшего кода и изучить Golang вместе с экспертами крупнейшего в e-com сообщества Go- разработчиков!
Route 256
Highway to e-com
💎 Бесплатно
💎 Оффер лучшим выпускникам
💎 Без собеседования на входе
💎 Два месяца
💎 Старт 25 сентября
В программе запуск и тестирование проектов на Go, HTTP и gRPC, базы данных, мониторинг, брокеры сообщений и другое.
Будет предварительный отбор. Подай заявку до 25 сентября включительно и перезапусти карьеру в IT: https://ozon.ru/t/TVo97
Route 256
Highway to e-com
💎 Бесплатно
💎 Оффер лучшим выпускникам
💎 Без собеседования на входе
💎 Два месяца
💎 Старт 25 сентября
В программе запуск и тестирование проектов на Go, HTTP и gRPC, базы данных, мониторинг, брокеры сообщений и другое.
Будет предварительный отбор. Подай заявку до 25 сентября включительно и перезапусти карьеру в IT: https://ozon.ru/t/TVo97
#вопросы_с_собеседований
Что такое «пул потоков»?
Что такое «пул потоков»?
Разработчик! Любишь ли ты ловить девопса, чтобы он нашел, почему микросервис не заводится? А что, если ты сможешь сам тестировать и выкатывать свой микросервис в продакшен?
1 октября начинается бесплатная Вечерняя Школа Kubernetes для разработчиков.
Будет полноценная теория курса «Kubernetes для разработчиков» и практические задания в облаке MCS. Знания, полученные в Вечерней Школе, помогут разработчикам говорить на одном языке с девопсами и самостоятельно работать в кластере. Меньше созвонов и отладки, больше интересной работы.
Подробности и регистрация: https://slurm.club/395K4Xa
1 октября начинается бесплатная Вечерняя Школа Kubernetes для разработчиков.
Будет полноценная теория курса «Kubernetes для разработчиков» и практические задания в облаке MCS. Знания, полученные в Вечерней Школе, помогут разработчикам говорить на одном языке с девопсами и самостоятельно работать в кластере. Меньше созвонов и отладки, больше интересной работы.
Подробности и регистрация: https://slurm.club/395K4Xa
Привет, Username! Приглашаем тебя на новый LifeTech-хакатон Цифрового Прорыва!
Для тебя мы подготовили крутецкие кейсы от Росатома, ДОМ.РФ, Департамента информационных технологий города Москвы, Транспортных инноваций Москвы!
Участвовать можно онлайн из любой точки России, либо в специальных оффлайн-коворкингах (см. список доступных на сайте).
Успей собрать команду 3-5 человек (или присоединиться к имеющимся), выбрать кейс и побороться за призовой фонд до 4.500.000 руб. 🚀🚀🚀
Регистрируйся прямо сейчас: https://proglib.io/w/3e64d336
Для тебя мы подготовили крутецкие кейсы от Росатома, ДОМ.РФ, Департамента информационных технологий города Москвы, Транспортных инноваций Москвы!
Участвовать можно онлайн из любой точки России, либо в специальных оффлайн-коворкингах (см. список доступных на сайте).
Успей собрать команду 3-5 человек (или присоединиться к имеющимся), выбрать кейс и побороться за призовой фонд до 4.500.000 руб. 🚀🚀🚀
Регистрируйся прямо сейчас: https://proglib.io/w/3e64d336
Создание потока является затратной по времени и ресурсам операцией. Количество потоков, которое может быть запущено в рамках одного процесса также ограниченно. Чтобы избежать этих проблем и в целом управлять множеством потоков более эффективно в
Начиная с
•
•
•
•
•
•
... и другие.
Методы
•
•
•
•
•
•
•
•
•
Java
был реализован механизм пула потоков (thread pool
), который создаётся во время запуска приложения и в дальнейшем потоки для обработки запросов берутся и переиспользуются уже из него. Таким образом, появляется возможность не терять потоки, сбалансировать приложение по количеству потоков и частоте их создания.Начиная с
Java 1.5 Java API
предоставляет фреймворк Executor
, который позволяет создавать различные типы пула потоков:•
Executor
- упрощенный интерфейс пула, содержит один метод для передачи задачи на выполнение;•
ExecutorService
- расширенный интерфейс пула, с возможностью завершения всех потоков;•
AbstractExecutorService
- базовый класс пула, реализующий интерфейс ExecutorService
;•
Executors
- фабрика объектов связанных с пулом потоков, в том числе позволяет создать основные типы пулов;•
ThreadPoolExecutor
- пул потоков с гибкой настройкой, может служить базовым классом для нестандартных пулов;•
ForkJoinPool
- пул для выполнения задач типа ForkJoinTask;... и другие.
Методы
Executors
для создания пулов:•
newCachedThreadPool()
- если есть свободный поток, то задача выполняется в нем, иначе добавляется новый поток в пул. Потоки не используемые больше минуты завершаются и удалются и кэша. Размер пула неограничен. Предназначен для выполнения множество небольших асинхронных задач;•
newCachedThreadPool(ThreadFactory threadFactory)
- аналогично предыдущему, но с собственной фабрикой потоков;•
newFixedThreadPool(int nThreads)
- создает пул на указанное число потоков. Если новые задачи добавлены, когда все потоки активны, то они будут сохранены в очереди для выполнения позже. Если один из потоков завершился из-за ошибки, на его место будет запущен другой поток. Потоки живут до тех пор, пока пул не будет закрыт явно методом shutdown()
.•
newFixedThreadPool(int nThreads, ThreadFactory threadFactory)
- аналогично предыдущему, но с собственной фабрикой потоков;•
newSingleThreadScheduledExecutor()
- однопотоковый пул с возможностью выполнять задачу через указанное время или выполнять периодически. Если поток был завершен из-за каких-либо ошибок, то для выполнения следующей задачи будет создан новый поток.•
newSingleThreadScheduledExecutor(ThreadFactory threadFactory)
- аналогично предыдущему, но с собственной фабрикой потоков;•
newScheduledThreadPool(int corePoolSize)
- пул для выполнения задач через указанное время или переодически;•
newScheduledThreadPool(int corePoolSize, ThreadFactory threadFactory)
- аналогично предыдущему, но с собственной фабрикой потоков;•
unconfigurableExecutorService(ExecutorService executor)
- обертка на пул, запрещающая изменять его конфигурацию;#вопросы_с_собеседований
Какое худшее время работы метода add() для ArrayList?
Какое худшее время работы метода add() для ArrayList?
O(N). Вставка элемента в конец списка осуществляется за время O(1), но если вместимость массива недостаточна, то происходит создание нового массива с увеличенным размером и копирование всех элементов из старого массива в новый.
Каким будет результат компиляции и исполнения этого кода?
Anonymous Quiz
5%
10
14%
11
12%
12
45%
17
23%
18
Специальный гость панельной дискуссии «Как выиграть в конкурентной борьбе за сети» — видеоблогер Wylsacom.
💥Saint HighLoad++ посетит ведущий самого популярного в России канала о технологиях и о том, как жить в ногу со временем!
😉Пока мы точно знаем, что Wylsacom будет на открытии конференции и на докладе об ускорении ВКонтакте. И примет участие в панельной дискуссии «Как выиграть в конкурентной борьбе за сети».
✅Кажется, Wylsacom, знает о докладах команды ВКонтакте что-то, чего ещё не знаем мы. Подключайтесь 20 сентября на открытую трансляцию главного зала Saint HighLoad++ и узнайте это первыми: https://bit.ly/3kp5sx3
💥Saint HighLoad++ посетит ведущий самого популярного в России канала о технологиях и о том, как жить в ногу со временем!
😉Пока мы точно знаем, что Wylsacom будет на открытии конференции и на докладе об ускорении ВКонтакте. И примет участие в панельной дискуссии «Как выиграть в конкурентной борьбе за сети».
✅Кажется, Wylsacom, знает о докладах команды ВКонтакте что-то, чего ещё не знаем мы. Подключайтесь 20 сентября на открытую трансляцию главного зала Saint HighLoad++ и узнайте это первыми: https://bit.ly/3kp5sx3