Библиотека джависта | 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
加入频道
#вопросы_с_собеседований
Stack считается «устаревшим». Чем его рекомендуют заменять? Почему?
Stack был добавлен в Java 1.0 как реализация стека LIFO (last-in-first-out) и является расширением коллекции Vector, хотя это несколько нарушает понятие стека (например, класс Vector предоставляет возможность обращаться к любому элементу по индексу). Является частично синхронизированной коллекцией (кроме метода добавления push()) с вытекающими отсюда последствиями в виде негативного воздействия на производительность. После добавления в Java 1.6 интерфейса Deque, рекомендуется использовать реализации именно этого интерфейса, например, ArrayDeque.
#вопросы_с_собеседований
В чем разница между HashMap и WeakHashMap? Для чего используется WeakHashMap?
В Java существует 4 типа ссылок: сильные (strong reference), мягкие (SoftReference), слабые (WeakReference) и фантомные (PhantomReference). Особенности каждого типа ссылок связаны с работой Garbage Collector. Если объект можно достичь только с помощью цепочки WeakReference (то есть на него отсутствуют сильные и мягкие ссылки), то данный объект будет помечен на удаление.

WeakHashMap - это структура данных, реализующая интерфейс Map и основанная на использовании WeakReference для хранения ключей. Таким образом, пара «ключ-значение» будет удалена из WeakHashMap, если на объект-ключ более не имеется сильных ссылок.

В качестве примера использования такой структуры данных можно привести следующую ситуацию: допустим имеются объекты, которые необходимо расширить дополнительной информацией, при этом изменение класса этих объектов нежелательно либо невозможно. В этом случае добавляем каждый объект в WeakHashMap в качестве ключа, а в качестве значения - нужную информацию. Таким образом, пока на объект имеется сильная ссылка (либо мягкая), можно проверять хэш-таблицу и извлекать информацию. Как только объект будет удален, то WeakReference для этого ключа будет помещен в ReferenceQueue и затем соответствующая запись для этой слабой ссылки будет удалена из WeakHashMap.
В WeakHashMap используются WeakReferences. А почему бы не создать PhantomHashMap на PhantomReferences?

PhantomReference при вызове метода get() возвращает всегда null, поэтому тяжело представить назначение такой структуры данных.
Проверьте себя в Java-квизе от команды из банковской практики Luxoft

Участвуйте в квизе с 14 по 27 июля, отвечайте правильно и быстрее всех на 10 вопросов и выигрывайте классные призы: смарт часы, аккумуляторы и футболки!

Ищите ссылку на квиз здесь

Все новости, видео прошедших митапов и анонсы предстоящих, вакансии и многое другое в Телеграм-канале Luxoft
#вопросы_с_собеседований
В каком регистре лучше писать HTML-код?
Весь HTML-код рекомендуется писать в нижнем регистре: это относится к названиям элементов, названиям атрибутов, значениям атрибутов (кроме текста/CDATA), селекторам, свойствам и их значениям (кроме текста).

Не рекомендуется

<A HREF="/">Домой</A>

Рекомендуется

<img src="forest.jpg" alt="Лес">
26 июля пройдет онлайн-митап о хакатоне CRM Hack

Российский ИТ-разработчик - Т1 Консалтинг готовится к запуску CRM нового поколения. Участникам хакатона нужно предложить MVP самостоятельных решений, которые в будущем смогут стать функциональными модулями системы. Призовой фонд хакатона 500 000 руб, прием заявок до 5 августа.

На митапе эксперты Т1 Консалтинг подробнее расскажут о функционале будущей CRM и технологической платформе, на которой будет строиться система.

Митап будет интересен как участникам, которые уже зарегистрировались на хакатон, так и тем, кто только думает об участии или слышит о CRM Hack впервые.

Для чего участвовать: узнать подробнее о задачах хакатона и задать вопросы по участию

📆 Регистрируйся и добавляй в календарь: crmhack.ru
📣📣📣 Java Hiring Week
26-30 июля, 2021 | онлайн

Мы приглашаем Java разработчиков уровня Middle/Senior/Lead/Architect с опытом работы от 2 лет стать частью нашей команды экспертов EPAM Anywhere.

Пройди техническое интервью и в течение 48 часов получи предложение присоединиться к EPAM Anywhere и бонус до 375 000 руб!
Сумма бонуса фиксирована независимо от оклада.

Хочешь узнать больше? Заполни регистрационную форму и узнай о платформе EPAM Anywhere и Java Hiring Week!
📌Зарегистрироваться -> https://epa.ms/1ZkHcl
Semaphore – это новый тип синхронизатора: семафор со счётчиком, реализующий шаблон синхронизации Семафор. Доступ управляется с помощью счётчика: изначальное значение счётчика задаётся в конструкторе при создании синхронизатора, когда поток заходит в заданный блок кода, то значение счётчика уменьшается на единицу, когда поток его покидает, то увеличивается. Если значение счётчика равно нулю, то текущий поток блокируется, пока кто-нибудь не выйдет из защищаемого блока. Semaphore используется для защиты дорогих ресурсов, которые доступны в ограниченном количестве, например подключение к базе данных в пуле.
#вопросы_с_собеседований SQL
Что лучше использовать: JOIN или подзапросы?
Java — один из популярнейших языков программирования. От программ для пылесоса и смартфона до серверных приложений в больших корпорациях — технологии Java есть практически везде.

Узнай больше о возможностях применения языка на онлайн-лекции «Зачем изучать Java и как делать это эффективно» — и создавай IT-решения в сфере fintech, big data и для других сфер бизнеса.

Когда: 28 июля в 16:00
Где: на YouTube-канале NIX
Спикер: Елена Хацько, Java Developer Lead в NIX

В программе:
● Java: актуальность, перспективы и популярность направления;
● где и как используется Java;
● как проходит учеба в NIX и как попасть на бесплатную программу обучения по Java.

Присоединяйся по ссылке.


Для кого:
● студентам и выпускникам технических специальностей;
● начинающим разработчикам;
● всем желающим построить карьеру в IT.

Java — твой идеальный путь к успеху в IT!
Обычно лучше использовать JOIN, поскольку в большинстве случаев он более понятен и лучше оптимизируется СУБД (но 100% этого гарантировать нельзя). Так же JOIN имеет заметное преимущество над подзапросами в случае, когда список выбора SELECT содержит столбцы более чем из одной таблицы.

Подзапросы лучше использовать в случаях, когда нужно вычислять агрегатные значения и использовать их для сравнений во внешних запросах.
Как начать развиваться в профессиональной кибербезопасности?

Команда практикующих безопасников школы HackerU приглашает вас на новый интенсив «RED, BLUE & APPSEC»

Что будет на интенсиве?

— 3 дня практических занятий онлайн по трем направлениям ИБ
— Разбор основных инструментов и техник анализа безопасности кода
— CTF-турнир
— Расскажем о карьерных лайфхаках на рынке ИБ и существующих программах обучения

Для всех участников интенсива будут доступны бонусы % на курсы по кибербезопасности от HackerU!

Записывайтесь на интенсив по ссылке и начните свой путь в кибербезопасности: https://is.gd/MbjdQn
Автор курса в Skypro

Мы в Skypro хотим сделать качество жизни лучше через доступное и высокооплачиваемое образование.

В подходе к разработке контента для нас важно: практико-применимость, актуальность и качество. Мы хотим сделать образование доступным и понятным каждому, соединив лучшие образовательные подходы и знания действующих разработчиков. Для этого мы создаем команду из авторов, экспертов и методистов.

Что можно будет делать?

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

Что мы ждем?

- опыт разработки Java 8 и выше.
- знание Spring Framework.
- опыт работы с базами данных.
- понимание трендов Java разработки.

Что предлагаем:

- опыт в создании образовательных продуктов.
- совершенствования навыка публичных выступлений.
- рост личного бренда.
- возможность вырастить сотрудников себе в команду.
- взаимодействие с командой Java разработчиков из других компаний (интересные холивары).
- научитесь объяснять сложные вещи – просто.
- 10-40 часов занятость в неделю, можно совмещать с основной работой.
- платим вторую ЗП, обсуждаем индивидуально.

Можете писать в телеграмм @gavrilovalova и [email protected].
Библиотека джависта | Java, Spring, Maven, Hibernate
#вопросы_с_собеседований Как принудительно запустить поток?
Никак. В Java не существует абсолютно никакого способа принудительного запуска потока. Это контролируется JVM и Java не предоставляет никакого API для управления этим процессом.