Библиотека джависта | Java, Spring, Maven, Hibernate
#вопросы_с_собеседований Что будет, если очередь пула потоков уже заполнена, но подаётся новая задача?
Если очередь пула потоков заполнилась, то поданная задача будет «отклонена». Например - метод submit() у ThreadPoolExecutor выкидывает RejectedExecutionException, после которого вызывается RejectedExecutionHandler.
#вакансии #харьков #nix #java
Команда NIX приглашает опытных разработчиков на позицию Java Tech Lead!
Мы ищем целеустремленного специалиста в проект по разработке SaaS-платформы для крупного поставщика оборудования.
Что мы ожидаем от тебя:
🔹опыт создания серверного программного обеспечения от 3-х лет;
🔹знание Spring Boot, Spring Data, CI/CD, Docker и Kubernetes, облачного провайдера AWS или Azure;
🔹понимание микросервисов и облачных архитектур;
🔹опыт взаимодействия с реляционными БД и СУБД (PostgreSQL и NoSQL);
🔹умение писать техническую документацию.
Что мы рады тебе предложить:
👉 удобное пространство в центре Харькова (метро «Университет»);
👉 гибкую систему пересмотра и повышения вознаграждения;
👉 постоянный профессиональный рост — участие во внутренних мероприятиях, оплачиваемые курсы английского, поездки на зарубежные IT-конференции;
👉 регулярные тимбилдинги, совместные праздники и легендарные корпоративы;
👉 медицинскую и спортивную программу, бухгалтерскую поддержку.
Отправляй свое резюме — присоединяйся к профессионалам NIX!
Команда NIX приглашает опытных разработчиков на позицию Java Tech Lead!
Мы ищем целеустремленного специалиста в проект по разработке SaaS-платформы для крупного поставщика оборудования.
Что мы ожидаем от тебя:
🔹опыт создания серверного программного обеспечения от 3-х лет;
🔹знание Spring Boot, Spring Data, CI/CD, Docker и Kubernetes, облачного провайдера AWS или Azure;
🔹понимание микросервисов и облачных архитектур;
🔹опыт взаимодействия с реляционными БД и СУБД (PostgreSQL и NoSQL);
🔹умение писать техническую документацию.
Что мы рады тебе предложить:
👉 удобное пространство в центре Харькова (метро «Университет»);
👉 гибкую систему пересмотра и повышения вознаграждения;
👉 постоянный профессиональный рост — участие во внутренних мероприятиях, оплачиваемые курсы английского, поездки на зарубежные IT-конференции;
👉 регулярные тимбилдинги, совместные праздники и легендарные корпоративы;
👉 медицинскую и спортивную программу, бухгалтерскую поддержку.
Отправляй свое резюме — присоединяйся к профессионалам NIX!
🎥 ТОП-10 фильмов и сериалов последних лет про современные технологии
Есть мнение, что после культовых «Хакеров», «Джони Мнемоника» и первой «Матрицы» больше не снимали хороших фильмов на околоайтишную тематику. Так ли это? Попробуем разобраться в обзоре лучших кинокартин о современных технологиях, вышедших за последние несколько лет.
https://proglib.io/sh/21yUtZI4wu
Есть мнение, что после культовых «Хакеров», «Джони Мнемоника» и первой «Матрицы» больше не снимали хороших фильмов на околоайтишную тематику. Так ли это? Попробуем разобраться в обзоре лучших кинокартин о современных технологиях, вышедших за последние несколько лет.
https://proglib.io/sh/21yUtZI4wu
Библиотека джависта | Java, Spring, Maven, Hibernate
Если очередь пула потоков заполнилась, то поданная задача будет «отклонена». Например - метод submit() у ThreadPoolExecutor выкидывает RejectedExecutionException, после которого вызывается RejectedExecutionHandler.
Особенностью PriorityQueue является возможность управления порядком элементов. По-умолчанию, элементы сортируются с использованием «natural ordering», но это поведение может быть переопределено при помощи объекта Comparator, который задаётся при создании очереди. Данная коллекция не поддерживает null в качестве элементов.
Используя PriorityQueue, можно, например, реализовать алгоритм Дейкстры для поиска кратчайшего пути от одной вершины графа к другой. Либо для хранения объектов согласно определённого свойства.
Используя PriorityQueue, можно, например, реализовать алгоритм Дейкстры для поиска кратчайшего пути от одной вершины графа к другой. Либо для хранения объектов согласно определённого свойства.
#вопросы_с_собеседований
Каков порядок вызова конструкторов и блоков инициализации с учётом иерархии классов?
Каков порядок вызова конструкторов и блоков инициализации с учётом иерархии классов?
Библиотека джависта | Java, Spring, Maven, Hibernate
#вопросы_с_собеседований Каков порядок вызова конструкторов и блоков инициализации с учётом иерархии классов?
Сначала вызываются все статические блоки в очередности от первого статического блока корневого предка и выше по цепочке иерархии до статических блоков самого класса.
Затем вызываются нестатические блоки инициализации корневого предка, конструктор корневого предка и так далее вплоть до нестатических блоков и конструктора самого класса.
Затем вызываются нестатические блоки инициализации корневого предка, конструктор корневого предка и так далее вплоть до нестатических блоков и конструктора самого класса.
1 октября в Москве пройдет Russia Open Source Summit, где на одной площадке соберутся все, кто в России создает программное обеспечение на основе открытого кода.
На открытии саммита будет представлен проект стратегии развития Open Source в России. После презентации проекта всем участникам мероприятия предложат выбрать одну из рабочих групп для внесения предложений в документ.
В рамках деловой программы будет выделен отдельный трек для шоу-кейсов (питчей) от стартапов, созданных на базе открытого кода. Можно подать заявку на выступление.
Принять участие можно бесплатно, регистрация на сайте.
Мероприятие начнется в 10:00 на площадке Radisson Collection Hotel.
Подготовка стратегии ведется российским экспертным ИТ-сообществом в открытом формате, в том числе на площадке Telegram.
На открытии саммита будет представлен проект стратегии развития Open Source в России. После презентации проекта всем участникам мероприятия предложат выбрать одну из рабочих групп для внесения предложений в документ.
В рамках деловой программы будет выделен отдельный трек для шоу-кейсов (питчей) от стартапов, созданных на базе открытого кода. Можно подать заявку на выступление.
Принять участие можно бесплатно, регистрация на сайте.
Мероприятие начнется в 10:00 на площадке Radisson Collection Hotel.
Подготовка стратегии ведется российским экспертным ИТ-сообществом в открытом формате, в том числе на площадке Telegram.
⛓ Что такое NFT и где они используются?
Технологии постоянно совершенствуются и все глубже проникают в жизнь человека, меняя ее и заставляя нас иначе смотреть на обыденные вещи. Поговорим о невзаимозаменяемых токенах (NFT) и причинах их популярности.
https://proglib.io/sh/Y07iIXqjoW
Технологии постоянно совершенствуются и все глубже проникают в жизнь человека, меняя ее и заставляя нас иначе смотреть на обыденные вещи. Поговорим о невзаимозаменяемых токенах (NFT) и причинах их популярности.
https://proglib.io/sh/Y07iIXqjoW
Что такое busy spin?
busy spin
– это техника, которую программисты используют, чтобы заставить поток ожидать при определённом условии. В отличие от традиционных методов wait()
, sleep()
или yield()
, которые подразумевают уступку процессорного времени, этот метод вместо уступки выполняет пустой цикл. Это необходимо для того, чтобы сохранить кэш процессора, т.к. в многоядерных системах существует вероятность, что приостановленный поток продолжит своё выполнение уже на другом ядре, а это повлечет за собой перестройку состояния процессорного кэша, которая является достаточно затратной процедурой.#вопросы_с_собеседований
Что произойдёт, если в блоке инициализации возникнет исключительная ситуация?
Что произойдёт, если в блоке инициализации возникнет исключительная ситуация?
Библиотека джависта | Java, Spring, Maven, Hibernate
#вопросы_с_собеседований Что произойдёт, если в блоке инициализации возникнет исключительная ситуация?
Для нестатических блоков инициализации, если выбрасывание исключения прописано явным образом требуется, чтобы объявления этих исключений были перечислены в throws всех конструкторов класса. Иначе будет ошибка компиляции. Для статического блока выбрасывание исключения в явном виде, приводит к ошибке компиляции.
В остальных случаях, взаимодействие с исключениями будет проходить так же, как и в любом другом месте. Класс не будет инициализирован, если ошибка происходит в статическом блоке и объект класса не будет создан, если ошибка возникает в нестатическом блоке.
В остальных случаях, взаимодействие с исключениями будет проходить так же, как и в любом другом месте. Класс не будет инициализирован, если ошибка происходит в статическом блоке и объект класса не будет создан, если ошибка возникает в нестатическом блоке.
#вопросы_с_собеседований
Что такое «индексы»? Для чего их используют? В чём заключаются их преимущества и недостатки?
Что такое «индексы»? Для чего их используют? В чём заключаются их преимущества и недостатки?
Индекс (index) — объект базы данных, создаваемый с целью повышения производительности выборки данных.
Наборы данных могут иметь большое количество записей, которые хранятся в произвольном порядке, и их поиск по заданному критерию путём последовательного просмотра набора данных запись за записью может занимать много времени. Индекс формируется из значений одного или нескольких полей и указателей на соответствующие записи набора данных, - таким образом, достигается значительный прирост скорости выборки из этих данных.
Наборы данных могут иметь большое количество записей, которые хранятся в произвольном порядке, и их поиск по заданному критерию путём последовательного просмотра набора данных запись за записью может занимать много времени. Индекс формируется из значений одного или нескольких полей и указателей на соответствующие записи набора данных, - таким образом, достигается значительный прирост скорости выборки из этих данных.
#вопросы_с_собеседований
Какие разновидности сборщиков мусора реализованы в виртуальной машине HotSpot?
Какие разновидности сборщиков мусора реализованы в виртуальной машине HotSpot?
Java HotSpot VM предоставляет разработчикам на выбор четыре различных сборщика мусора:
☕️ Serial (последовательный) — самый простой вариант для приложений с небольшим объемом данных и не требовательных к задержкам. На данный момент используется сравнительно редко, но на слабых компьютерах может быть выбран виртуальной машиной в качестве сборщика по умолчанию. Использование Serial GC включается опцией -XX:+UseSerialGC.
☕️ Parallel (параллельный) — наследует подходы к сборке от последовательного сборщика, но добавляет параллелизм в некоторые операции, а также возможности по автоматической подстройке под требуемые параметры производительности. Параллельный сборщик включается опцией -XX:+UseParallelGC.
☕️ Concurrent Mark Sweep (CMS) — нацелен на снижение максимальных задержек путем выполнения части работ по сборке мусора параллельно с основными потоками приложения. Подходит для работы с относительно большими объемами данных в памяти. Использование CMS GC включается опцией -XX:+UseConcMarkSweepGC.
☕️ Garbage-First (G1) — создан для замены CMS, особенно в серверных приложениях, работающих на многопроцессорных серверах и оперирующих большими объемами данных. G1 включается опцией Java -XX:+UseG1GC.
☕️ Serial (последовательный) — самый простой вариант для приложений с небольшим объемом данных и не требовательных к задержкам. На данный момент используется сравнительно редко, но на слабых компьютерах может быть выбран виртуальной машиной в качестве сборщика по умолчанию. Использование Serial GC включается опцией -XX:+UseSerialGC.
☕️ Parallel (параллельный) — наследует подходы к сборке от последовательного сборщика, но добавляет параллелизм в некоторые операции, а также возможности по автоматической подстройке под требуемые параметры производительности. Параллельный сборщик включается опцией -XX:+UseParallelGC.
☕️ Concurrent Mark Sweep (CMS) — нацелен на снижение максимальных задержек путем выполнения части работ по сборке мусора параллельно с основными потоками приложения. Подходит для работы с относительно большими объемами данных в памяти. Использование CMS GC включается опцией -XX:+UseConcMarkSweepGC.
☕️ Garbage-First (G1) — создан для замены CMS, особенно в серверных приложениях, работающих на многопроцессорных серверах и оперирующих большими объемами данных. G1 включается опцией Java -XX:+UseG1GC.
Beginning Programming with Java For Dummies (2021)
Автор: Barry Burd
Количество страниц: 560
Если вы хотите программировать на Java, книга научит вас созданию программ, способам решения стандартных задач и многому другому. Независимо от того, работаете ли вы уже или только начинаете карьеру, эта книга может стать ресурсом, к которому вы будете обращаться снова и снова, совершенствуя свое понимание нюансов этого популярного языка программирования.
Скачать книгу
Автор: Barry Burd
Количество страниц: 560
Если вы хотите программировать на Java, книга научит вас созданию программ, способам решения стандартных задач и многому другому. Независимо от того, работаете ли вы уже или только начинаете карьеру, эта книга может стать ресурсом, к которому вы будете обращаться снова и снова, совершенствуя свое понимание нюансов этого популярного языка программирования.
Скачать книгу
Telegram
Книги для программистов (reserved)
Beginning Programming with Java For Dummies (2021)
Автор: Barry Burd
Автор: Barry Burd
⛓ Справочник по блокчейну и криптовалютам. Часть 1: основные понятия и технологии
Изучить терминологию в любой сфере – задача не из легких. Поиск в интернете проблему не решает, если тема слишком сложная и запутанная. Эта шпаргалка поможет вам разобраться с основными понятиями в криптовалютном мире.
https://proglib.io/sh/3jxWVpJwaD
Изучить терминологию в любой сфере – задача не из легких. Поиск в интернете проблему не решает, если тема слишком сложная и запутанная. Эта шпаргалка поможет вам разобраться с основными понятиями в криптовалютном мире.
https://proglib.io/sh/3jxWVpJwaD
Sams Teach Yourself Java in 21 Days (2020)
Автор: Rogers Cadenhead
Количество страниц: 672
С помощью этого руководства вы быстро освоите основы, а затем перейдете к продвинутым особенностям и концепциям современной Java. Книга была полностью обновлена для Java 11 и 12. К тому времени, когда вы прочтете книгу, вы будете хорошо разбираться в Java и библиотеках. Предыдущий опыт программирования не требуется. Следуя 21 тщательно организованному уроку из этой книги, каждый может изучить основы программирования на Java.
Скачать книгу
Автор: Rogers Cadenhead
Количество страниц: 672
С помощью этого руководства вы быстро освоите основы, а затем перейдете к продвинутым особенностям и концепциям современной Java. Книга была полностью обновлена для Java 11 и 12. К тому времени, когда вы прочтете книгу, вы будете хорошо разбираться в Java и библиотеках. Предыдущий опыт программирования не требуется. Следуя 21 тщательно организованному уроку из этой книги, каждый может изучить основы программирования на Java.
Скачать книгу
Telegram
Книги для программистов (reserved)
Sams Teach Yourself Java in 21 Days (2020)
Автор: Rogers Cadenhead
Автор: Rogers Cadenhead
#вопросы_с_собеседований
Что такое «зелёные потоки» и есть ли они в Java?
Что такое «зелёные потоки» и есть ли они в Java?
Зелёные (легковесные) потоки (green threads) — потоки, эмулируемые виртуальной машиной или средой исполнения. Создание зелёного потока не подразумевает под собой создание реального потока ОС.
Виртуальная машина Java берёт на себя заботу о переключении между разными green threads, а сама машина работает как один поток ОС. Это даёт несколько преимуществ. Потоки ОС относительно дороги в большинстве POSIX-систем. Кроме того, переключение между native threads гораздо медленнее, чем между green threads.
Это всё означает, что в некоторых ситуациях green threads гораздо выгоднее, чем native threads. Система может поддерживать гораздо большее количество green threads, чем потоков OС. Например, гораздо практичнее запускать новый green thread для нового HTTP-соединения к веб-серверу, вместо создания нового native thread.
Однако есть и недостатки. Самый большой заключается в том, что вы не можете исполнять два потока одновременно. Поскольку существует только один native thread, только он и вызывается планировщиком ОС. Даже если у вас несколько процессоров и несколько green threads, только один процессор может вызывать green thread. И всё потому, что с точки зрения планировщика заданий ОС всё это выглядит одним потоком.
Начиная с версии 1.2 Java поддерживает native threads, и с тех пор они используются по умолчанию.
Виртуальная машина Java берёт на себя заботу о переключении между разными green threads, а сама машина работает как один поток ОС. Это даёт несколько преимуществ. Потоки ОС относительно дороги в большинстве POSIX-систем. Кроме того, переключение между native threads гораздо медленнее, чем между green threads.
Это всё означает, что в некоторых ситуациях green threads гораздо выгоднее, чем native threads. Система может поддерживать гораздо большее количество green threads, чем потоков OС. Например, гораздо практичнее запускать новый green thread для нового HTTP-соединения к веб-серверу, вместо создания нового native thread.
Однако есть и недостатки. Самый большой заключается в том, что вы не можете исполнять два потока одновременно. Поскольку существует только один native thread, только он и вызывается планировщиком ОС. Даже если у вас несколько процессоров и несколько green threads, только один процессор может вызывать green thread. И всё потому, что с точки зрения планировщика заданий ОС всё это выглядит одним потоком.
Начиная с версии 1.2 Java поддерживает native threads, и с тех пор они используются по умолчанию.
#вопросы_с_собеседований
Какая разница между JSPWriter и сервлетным PrintWriter?
Какая разница между JSPWriter и сервлетным PrintWriter?