Библиотека джависта | Java, Spring, Maven, Hibernate
24.9K subscribers
1.86K photos
38 videos
42 files
2.64K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
#вопросы_с_собеседований
В чем отличие между кластерными и некластерными индексами?
Где лучшие конференции? У нас на <Природа кода> 🏕

Го вместе с Х5 Tech на бесплатный кемпинг-уикенд <Природа кода> в Переславль-Залесский.

Обещаем полезный контент без отягощающих обстоятельств в виде конференц-зала, кондиционеров и бутылочек с водой. Только свежие идеи на свежем воздухе от ведущих спикеров

▪️О чем поговорим?

В категории бэк Юрий Букаткин расскажет "Как быстро выбрать для 50 млн пользователей лучший контент", а Александр Логинов ответит на вопрос "Как рождается код?"

Во фронте обсудим вместе с Глебом Михеевым "Как расти и развиваться в айти", Полина Гуртовая поделится мыслями на тему "Фронтенд как часть Коллективного Разума".

▪️Для кого: IT-фанаты, энтузиасты и визионеры по стекам Java/JavaScript/Python, уровня middle&senior
▪️Где: AZIMUT Отель Переславль 4*
▪️Когда: уикенд 11-12 сентября

Комплимент от Х5 Tech: трансфер, питание, проживание и активити - все бесплатно для участников слета.

Больше тем и спикеров на лендинге, а рядом кнопка регистрации 😉
Библиотека джависта | Java, Spring, Maven, Hibernate
#вопросы_с_собеседований В чем отличие между кластерными и некластерными индексами?
Некластерные индексы - данные физически расположены в произвольном порядке, но логически упорядочены согласно индексу. Такой тип индексов подходит для часто изменяемого набора данных.

При кластерном индексировании данные физически упорядочены, что серьезно повышает скорость выборок данных (но только в случае последовательного доступа к данным). Для одного набора данных может быть создан только один кластерный индекс.
Блокирующий метод – метод, который блокируется до тех пор, пока задание не выполнится, например метод accept() у ServerSocket блокируется в ожидании подключения клиента. Здесь блокирование означает, что контроль не вернётся к вызывающему методу до тех пор, пока не выполнится задание. Так же существуют асинхронные или неблокирующиеся методы, которые могут завершиться до выполнения задачи.
#вопросы_с_собеседований
В чем разница между PrintWriter и ServletOutputStream?
PrintWriter — класс для работы с символьным потоком, экземпляр которого можно получить через метод ServletResponse getWriter();

ServletOutputStream — класс для работы байтовым потоком. Для получения его экземпляра используется метод ServletResponse getOutputStream().
Что такое «кооперативная многозадачность»? Какой тип многозадачности использует Java? Чем обусловлен этот выбор?

Кооперативная многозадачность - это способ деления процессорного времени между потоками, при котором каждый поток обязан отдавать управление следующему добровольно.

Преимущества такого подхода - простота реализации, меньшие накладные расходы на переключение контекста.

Недостатки - если один поток завис или ведет себя некорректно, то зависает целиком вся система и другие потоки никогда не получат управление.

Java использует вытесняющую многозадачность, при которой решение о переключении между потоками процесса принимает операционная система.

В отличие от кооперативной многозадачности управление операционной системе передаётся вне зависимости от состояния работающих приложений, благодаря чему, отдельные зависшие потоки процесса, как правило, не «подвешивают» всю систему целиком. За счёт регулярного переключения между задачами также улучшается отзывчивость приложения и повышается оперативность освобождения ресурсов, которые больше не используются.

В реализации вытесняющая многозадачность отличается от кооперативной, в частности, тем, что требует обработки системного прерывания от аппаратного таймера.
#вопросы_с_собеседований
Какой оператор позволяет принудительно выбросить исключение?
Это оператор throw:

throw new Exception();
Чему бы вы хотели научиться?
GET передает данные серверу используя URL, тогда как POST передает данные, используя тело HTTP запроса. Длина URL ограничена 1024 символами, это и будет верхним ограничением для данных, которые можно отослать через GET. POST может отправлять гораздо большие объемы данных. Лимит устанавливается web-server и составляет обычно около 2 Mb.

Передача данных методом POST более безопасна, чем методом GET, так как секретные данные (например пароль) не отображаются напрямую в web-клиенте пользователя, в отличии от URL, который виден почти всегда. Иногда это преимущество превращается в недостаток - вы не сможете послать данные за кого-то другого.
По результатам всемирного опроса Stack Overflow 2020 язык программирования Python входит в тройку самых любимых технологий в среде разработчиков. Так что если вы только собираетесь научиться кодить, Python отлично подходит на роль первого языка программирования.

Специально для новичков мы подготовили курс, в котором обучаем основам программирования на Python с нуля до уровня Junior за 30 занятий. Вы научитесь не только программировать, но и сделаете несколько практических проектов — в частности, ботов для Telegram и Instagram. Преподаватели лично проверят ваши домашние задания и дадут полезные советы, так что вы точно во всём разберётесь.

Старт потока 15 сентября. Эксклюзивный промокод подписчикам канала JAVA на скидку 15% только до 6 сентября.

Информация о преподавателях, полная учебная программа и запись на курс здесь
📱 Легко ли устроиться начинающему Android-разработчику?

Интересные проекты и хорошие заработки привлекают многих, но препятствия поджидают начинающего Android-разработчика уже на старте. Поговорим о том, как их обойти и получить работу мечты.

https://proglib.io/sh/tbJBOc3o6i
SQL Pocket Guide: A Guide to SQL Usage (2021)
Автор: Alice Zhao
Количество страниц: 356

Если вы используете SQL в повседневной работе в качестве аналитика данных, специалиста по данным или инженера, это популярное карманное руководство станет вашим идеальным справочником при работе. Вы найдете множество примеров, в которых рассматриваются сложности языка, а также ключевые аспекты SQL, используемые в Microsoft SQL Server, MySQL, Oracle Database, PostgreSQL и SQLite.

Скачать книгу
#вопросы_с_собеседований
Зачем может быть нужен private мьютекс?
Старт второго потока курса «CI/CD на примере Gitlab CI» от Слёрм.

За 5 недель освоим путь от простого пайплана до настройки сложных вариантов CI/CD. Поможем понять, как работать с CI/CD. Научим автоматизировать процесс интеграции и поставки, ускорять цикл разработки с минимальными рисками.

Ответим на вопросы:
Что такое CI/CD
Какие проблемы решает CI/CD
Какие преимущества и недостатки есть у Gitlab Cl
Как интегрируется Gitlab CI и Kubernetes
Что такое Gitops и где его применять
Как лучше всего строить пайплайны

Раз в неделю кураторы разбирают кейсы и практические задания студентов, кроме этого будет две встречи со спикером. В конце курса будет IT-поединок⚔️.

Прочитать подробнее про курс и начать учиться уже с 9 сентября: https://slurm.club/38ysZF0
Объект для синхронизации делается private, чтобы сторонний код не мог на него синхронизироваться и случайно получить взаимную блокировку.
Дело в том, что «висеть» на методе wait() одного монитора могут сразу несколько потоков. При вызове notify() только один из них выходит из wait() и пытается захватить монитор, а затем продолжает работу со следующего после wait() оператора. Какой из них выйдет - заранее неизвестно. А при вызове notifyAll(), все висящие на wait() потоки выходят из wait(), и все они пытаются захватить монитор. Понятно, что в любой момент времени монитор может быть захвачен только одним потоком, а остальные ждут своей очереди. Порядок очереди определяется планировщиком потоков Java.