Библиотека джависта | 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
加入频道
Стать ближе к сфере кибербезопасности и получить первые знания и навыки вы сможете уже 20 октября на интенсиве «Старт в кибербезопасности: Level 0».

За 4 дня практических занятий с экспертом вы научитесь:

— Устанавливать и настраивать Linux-системы на виртуальные машины
— Устанавливать и настраивать сеть на Linux-системах
— Детально понимать взаимодействие между виртуальной и физической машиной
— Осуществлять ряд сетевых и связанных с уязвимостью ОС атак, и разрабатывать защиту от них
— Анализировать безопасность ОС

Что это вам даст?

— Получите необходимые знания о профессии, чтобы оценить свои силы и перспективы
— Детально разберетесь с чего начинается эффективная система информационной безопасности.
— Поймете принципы осуществления кибератак и получите реальный опыт
— Подготовитесь к поступлению на профессиональную программу «Специалист по информационной безопасности»

Эксперт интенсива — Ильдар Садыков, действующий руководитель отдела ИБ Федерального бюро МСЭ Министерство труда и социальной защиты РФ. Управляет 2 000 системами в 85 регионах РФ.

Примите участие в интенсиве и обеспечьте себе уверенный старт на пути к востребованной профессии!

Записаться на интенсив: https://is.gd/wYORYn
#вопросы_с_собеседований
Какой класс предназначен для работы с элементами файловой системы?
File работает непосредственно с файлами и каталогами. Данный класс позволяет создавать новые элементы и получать информацию существующих: размер, права доступа, время и дату создания, путь к родительскому каталогу.
#вопросы_с_собеседований
В чем заключаются различия между cтеком (stack) и кучей (heap) с точки зрения многопоточности?
Cтек – участок памяти, тесно связанный с потоками. У каждого потока есть свой стек, который хранит локальные переменные, параметры методов и стек вызовов. Переменная, хранящаяся в стеке одного потока, не видна для другого.

Куча – общий участок памяти, который делится между всеми потоками. Объекты (неважно, локальные или любого другого уровня) создаются в куче. Для улучшения производительности поток обычно кэширует значения из кучи в свой стек, в этом случае для того, чтобы указать потоку, что переменную следует читать из кучи, используется ключевое слово volatile.
#вопросы_с_собеседований
1. Дайте определение понятию «конструктор».
2. Что такое «конструктор по умолчанию»?
1. Конструктор — это специальный метод, у которого отсутствует возвращаемый тип и который имеет то же имя, что и класс, в котором он используется. Конструктор вызывается при создании нового объекта класса и определяет действия, необходимые для его инициализации.
2. Если у какого-либо класса не определить конструктор, то компилятор сгенерирует конструктор без аргументов - так называемый «конструктор по умолчанию».

public class ClassName() {}

Если у класса уже определен какой-либо конструктор, то конструктор по умолчанию создан не будет и, если он необходим, его нужно описывать явно.
#вопросы_с_собеседований
Каким образом реализованы методы hashCode() и equals() в классе Object?
Хочешь работать в IT, но не хватает практики? Присоединяйся к бесплатному Java-интенсиву, где тебя ждут реальные задачи, которые помогут закрепить знания и понять, в каком направлении двигаться дальше.

Регистрируйся по ссылке: 👉 https://clc.am/nxzpFg.

Своими навыками делится программист с 15-летним опытом Даниил Пилипенко.

Что тебя ждёт?
✔️ Основы программирования на Java.
✔️ Работа с файлами и библиотеками.
✔️ Разработка приложения, которое непрерывно записывает звук с микрофона компьютера и отправляет файлы в Dropbox.
✔️ Анализ работ и разбор типичных ошибок.
✔️ Практические советы и инсайты от опытного программиста.

🎉 Если твой проект будет одним из лучших — получишь сертификат на 30 000 рублей для поступления на любой онлайн-курс университета Skillbox!
Реализация метода Object.equals() сводится к проверке на равенство двух ссылок:

public boolean equals(Object obj) {
return (this == obj);
}

Реализация метода Object.hashCode() описана как native, т.е. определенной не с помощью Java кода и обычно возвращает адрес объекта в памяти:

public native int hashCode();
Sams Teach Yourself Java in 21 Days (2020)
Автор: Rogers Cadenhead
Количество страниц: 672

С помощью этого руководства вы быстро освоите основы, а затем перейдете к продвинутым особенностям и концепциям современной Java. Книга была полностью обновлена для Java 11 и 12. К тому времени, когда вы прочтете книгу, вы будете хорошо разбираться в Java и библиотеках. Предыдущий опыт программирования не требуется. Следуя 21 тщательно организованному уроку из этой книги, каждый может изучить основы программирования на Java.

Скачать книгу
Международная Java-конференция для опытных разработчиков и тимлидов #Joker 2020 уже 25–28 ноября, Online.

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

В программе:
— Создатель Concurnas Jason Tatton расскажет о создании надежных многопоточных, распределенных и параллельных систем с использованием JVM. Если вы ищете средства для создания таких продуктов, вам однозначно понравится.
— Профессиональный спикер и автор блога JavaSpecialists.eu Heinz Kabutz в компании с соратником John Green расскажут о многопоточном программировании с использованием Phaser, StampedLock и VarHandle.
— Один из разработчиков Kotlin Роман Елизаров даст большое интервью с Q&A-сессией. Можно будет в прямом эфире расспросить его о перспективах языка, его эволюции и компромиссах, на которые приходится идти в работе.

Программа и билеты со скидкой по промокоду proglib2020JRGpc : https://bit.ly/34OtLez
#вопросы_с_собеседований
Какие подклассы класса OutputStream вы знаете, для чего они предназначены?
☕️ OutputStream - это абстрактный класс, определяющий потоковый байтовый вывод;
☕️ BufferedOutputStream - буферизированный выходной поток;
☕️ ByteArrayOutputStream - все данные, посылаемые в этот поток, размещаются в предварительно созданном буфере;
☕️ DataOutputStream - выходной поток байт, включающий методы для записи стандартных типов данных Java;
☕️ FileOutputStream - запись данных в файл на физическом носителе;
☕️ FilterOutputStream - абстрактный класс, предоставляющий интерфейс для классов-надстроек, которые добавляют к существующим потокам полезные свойства;
☕️ PrintStream - выходной поток, включающий методы print() и println();
☕️ ObjectOutputStream - выходной поток для записи объектов;
☕️ PipedOutputStream реализует понятие выходного канала.
GeekBrains запускает курс «Python для решения бизнес-задач»

Обучение начнется 23 октября и продлится 2,5 месяца. Курс рассчитан на далеких от программирования слушателей: маркетологов, продакт-менеджеров и предпринимателей. В формате видеоуроков и практических вебинаров они научатся автоматизировать рутинные задачи и процессы. Опытные преподаватели расскажут, как создавать ботов Telegram, собирать, обрабатывать и визуализировать данные о клиентах, а также обрабатывать файлы и проверять правильность заполнения форм. Python позволяет написать программу один раз и запускать ее по потребности — это экономит рабочее время.

Получить дополнительную информацию и записаться в группу можно на сайте: https://proglib.io/w/b894de20
#вопросы_с_собеседований
Какой класс появился в Java 8 для кодирования/декодирования данных?
Base64 - потокобезопасный класс, который реализует кодировщик и декодировщик данных, используя схему кодирования base64 согласно RFC 4648 и RFC 2045.

Base64 содержит 6 основных методов:

getEncoder()/getDecoder() - возвращает кодировщик/декодировщик base64, соответствующий стандарту RFC 4648;
getUrlEncoder()/getUrlDecoder() - возвращает URL-safe кодировщик/декодировщик base64, соответствующий стандарту RFC 4648;
getMimeEncoder()/getMimeDecoder() - возвращает MIME кодировщик/декодировщик, соответствующий стандарту RFC 2045.
#вопросы_с_собеседований
Какое худшее время работы метода get(key) для ключа, который есть в HashMap?
O(N). Худший случай - это поиск ключа в HashMap, вырожденного в список по причине совпадения ключей по hashCode() и для выяснения, хранится ли элемент с определённым ключом, может потребоваться перебор всего списка.
UPD. Начиная с Java 8 корзины в HashMap становятся балансированными деревьями, если в них попадает больше определенного кол-ва объектов. Поэтому худший случай будет O(log n). Подробности можно почитать в https://javahungry.blogspot.com/2013/08/hashing-how-hash-map-works-in-java-or.html (спасибо за указание на ошибку)