Обложка канала

Библиотека джависта. Страница 44

20804 @javaproglib

Полезные материалы по всему, что может быть полезно разработчику на Java.

  • Библиотека джависта

    #вопросы_с_собеседований Зачем добавили ArrayList, если уже был Vector? ☕️ Методы класса Vector синхронизированы, а ArrayList - нет; ☕️ По умолчанию Vector удваивает свой размер, когда заканчивается выделенная под элементы память. ArrayList же увеличивает свой размер только на половину. Vector это устаревший класс и его использование не рекомендовано.
  • Библиотека джависта

    #вопросы_с_собеседований Чем полезны неизменяемые объекты? Неизменяемость (immutability) помогает облегчить написание многопоточного кода. Неизменяемый объект может быть использован без какой-либо синхронизации. К сожалению, в Java нет аннотации @Immutable, которая делает объект неизменяемым, для этого разработчикам нужно самим создавать класс с необходимыми характеристиками. Для этого необходимо следовать некоторым общим принципам: инициализация всех полей только в конструкторе, отсутствие методов setX() вносящих изменения в поля класса, отсутствие утечек ссылки, организация отдельного хранилища копий изменяемых объектов и т.д.
  • Библиотека джависта

    Курс: «Разработчик. Из мидла в сеньоры» Для мидл-разработчиков, которые чувствуют что способны на большее, чем просто закрывать задачи. Мы подготовили курс с участием специалистов из сферы финтеха и учли основные навыки, которые нужны чтобы перейти на сеньор-позицию. На курсе ты научишься: → Управлять командой разработки и наймом специалистов → Проектировать архитектуру приложений в больших системах → Использовать продуктовое мышление в разработке → Проходить техническое интервью на позицию сеньор-разработчика Курс состоит из 7 лекций с практическими заданиями и стартует уже 11 октября. Участие — бесплатное. Зарегистрироваться и узнать подробности ты можешь по ссылке → https://slurm.club/3DioBdQ
  • Реклама

  • Библиотека джависта

    #вопросы_с_собеседований override vs overload • override — возможность переопределениия поведения метода в типах-потомках • overload — возможность переопределять метод с одним именем, но разным набором аргументов
  • Библиотека джависта

    Узнай уровень своей крутости! Специально ко Дню программиста Сбер запустил квест с реальными персонажами. Презентация приложения для распознавания голосов птиц «Щебет» начнётся через 30 минут, а продукт ещё не до конца готов! Не теряй время – переходи по ссылке и выбирай, кто ты в команде, выполняй задания и получи возможность сделать игру реальностью!
  • Библиотека джависта

    #вопросы_с_собеседований Что такое Semaphore? Semaphore – это новый тип синхронизатора: семафор со счётчиком, реализующий шаблон синхронизации Семафор. Доступ управляется с помощью счётчика: изначальное значение счётчика задаётся в конструкторе при создании синхронизатора, когда поток заходит в заданный блок кода, то значение счётчика уменьшается на единицу, когда поток его покидает, то увеличивается. Если значение счётчика равно нулю, то текущий поток блокируется, пока кто-нибудь не выйдет из защищаемого блока. Semaphore используется для защиты дорогих ресурсов, которые доступны в ограниченном количестве, например подключение к базе данных в пуле.
  • Библиотека джависта

    Курс: «Разработчик. Из мидла в сеньоры» Для мидл-разработчиков, которые чувствуют что способны на большее, чем просто закрывать задачи. Мы подготовили курс с участием специалистов из сферы финтеха и учли основные навыки, которые нужны чтобы перейти на сеньор-позицию. На курсе ты научишься: → Управлять командой разработки и наймом специалистов → Проектировать архитектуру приложений в больших системах → Использовать продуктовое мышление в разработке → Проходить техническое интервью на позицию сеньор-разработчика Курс состоит из 7 лекций с практическими заданиями и стартует уже 10 октября. Участие — бесплатное. Зарегистрироваться и узнать подробности ты можешь по ссылке → https://slurm.club/3DioBdQ
  • Библиотека джависта

    💡Сколько курсов вы купили и не стали проходить? ⬇️ Расскажите в комментариях ⬇️
  • Библиотека джависта

    #вопросы_с_собеседований Что такое «фреймворк Fork/Join»? Фреймворк Fork/Join, представленный в JDK 7, - это набор классов и интерфейсов позволяющих использовать преимущества многопроцессорной архитектуры современных компьютеров. Он разработан для выполнения задач, которые можно рекурсивно разбить на маленькие подзадачи, которые можно решать параллельно. • Этап Fork: большая задача разделяется на несколько меньших подзадач, которые в свою очередь также разбиваются на меньшие. И так до тех пор, пока задача не становится тривиальной и решаемой последовательным способом. • Этап Join: далее (опционально) идёт процесс «свёртки» - решения подзадач некоторым образом объединяются пока не получится решение всей задачи. Решение всех подзадач (в т.ч. и само разбиение на подзадачи) происходит параллельно. Для решения некоторых задач этап Join не требуется. Например, для параллельного QuickSort — массив рекурсивно делится на всё меньшие и меньшие диапазоны, пока не вырождается в тривиальный случай из 1 элемента. Хотя в некотором смысле Join будет необходим и тут, т.к. всё равно остаётся необходимость дождаться пока не закончится выполнение всех подзадач. Ещё одно замечательное преимущество этого фреймворка заключается в том, что он использует work-stealing алгоритм: потоки, которые завершили выполнение собственных подзадач, могут «украсть» подзадачи у других потоков, которые всё ещё заняты.
  • Библиотека джависта

    👨‍🎓 31 лучший вуз России для будущих программистов 2022-2023 Составили список из 31 вуза, где вы научитесь думать как программист и получите фундаментальные знания в области математики, информатики, компьютерных наук и так далее. Для удобства вузы отсортированы по среднему проходному баллу ЕГЭ: от наибольшего к наименьшему. 🔗 Основной сайт 🔗 Зеркало
  • Библиотека джависта

    #ищу_работу Напишите пару слов о себе, добавьте ссылку на гитхаб/резюме и укажите хештеги: #язык, #стек, #библиотеки
  • Библиотека джависта

    Стартовать в IT за три дня Даже в такой престижной сфере, как IT, есть специальности, которые ценятся особенно высоко. И дело здесь даже не в зарплате. Профессиональные тестировщики ПО – люди, без которых не обойтись. Они ищут ошибки, смотрят, чтобы программа делала именно то, что задумано, проверяют, как работают приложения и многое другое. К тому же, эта профессия - отличный старт для будущего специалиста! Бесплатный трехдневный интенсив «Тестировщик ПО: инструкция по быстрому старту в IT» познакомит вас с профессией и откроет двери в мир профессионалов IT За три дня вы: — погрузитесь в профессию тестировщика ПО, чтоб понять, подходит ли она вам; — научитесь работать в инструменте для автоматического тестирования Postman; — напишете баг-репорт и протестируете API сайт; — пообщаетесь с экспертами и узнаете требования потенциальных работодателей. 📍Ждем вас 12, 13 и 14 сентября в 18:00! 🔹https://clc.to/-oHZBQ
  • Библиотека джависта

    #вопросы_с_собеседований Какие методы для работы с cookies предусмотрены в сервлетах? Servlet API предоставляет поддержку cookies через класс javax.servlet.http.Cookie: • Для получения массива cookies из запроса необходимо воспользоваться методом HttpServletRequest.getCookies(). Методов для добавления cookies в HttpServletRequest не предусмотрено. • Для добавления cookie в ответ используется HttpServletResponse.addCookie(Cookie c). Метода получения cookies в HttpServletResponse отсутствует.
  • Библиотека джависта

    #вопросы_с_собеседований Какие различные методы управления сессией в сервлетах вы знаете? При посещении клиентом Web-ресурса и выполнении вариантов запросов, контекстная информация о клиенте не хранится. В протоколе HTTP нет возможностей для сохранения и изменения информации о предыдущих посещениях клиента. Сеанс (сессия) – соединение между клиентом и сервером, устанавливаемое на определенное время, за которое клиент может отправить на сервер сколько угодно запросов. Сеанс устанавливается непосредственно между клиентом и Web-сервером. Каждый клиент устанавливает с сервером свой собственный сеанс. Сеансы используются для обеспечения хранения данных во время нескольких запросов Web-страницы или на обработку информации, введенной в пользовательскую форму в результате нескольких HTTP-соединений (например, клиент совершает несколько покупок в интернет-магазине; студент отвечает на несколько тестов в системе дистанционного обучения). Существует несколько способов обеспечения уникального идентификатора сессии: User Authentication – Предоставление учетных данных самим пользователем в момент аутентификации. Переданная таким образом информация в дальнейшем используется для поддержания сеанса. Это метод не будет работать, если пользователь вошёл в систему одновременно из нескольких мест. HTML Hidden Field – Присвоение уникального значения скрытому полю HTML страницы, в момент когда пользователь начинает сеанс. Этот метод не может быть использован со ссылками, потому что нуждается в подтверждении формы со скрытым полем каждый раз во время формирования запроса. Кроме того, это не безопасно, т.к. существует возможность простой подмены такого идентификатора. URL Rewriting – Добавление идентификатора сеанса как параметра URL. Достаточно утомительная операция, потому что требует постоянного отслеживания этого идентификатора при каждом запросе или ответе. Cookies – Использование небольших фрагментов данных, отправленных web-сервером и хранимых на устройстве пользователя. Данный метод не будет работать, если клиент отключает использование cookies. Session Management API – Использование специального API для отслеживания сеанса, построенный на основе и на методах, описанных выше и который решает частные проблемы перечисленных способов: Чаще всего недостаточно просто отслеживать сессию, необходимо ещё и сохранять какие-либо дополнительные данные о ней, которые могут потребоваться при обработке последующих запросов. Осуществление такого поведения требует много дополнительных усилий. Все вышеперечисленные методы не являются универсальными: для каждого из них можно подобрать конкретный сценарий, при котором они не будут работать.
  • Библиотека джависта

    Метод insert() Вставляет символы в данную строку буфера (StringBuffer). Подстрока добавляется перед указанным индексом.
  • Реклама

  • Библиотека джависта

    #вопросы_с_собеседований Какой параметр запуска JVM используется для контроля размера стека потока? -Xss
  • Библиотека джависта

    Отличия String/StringBuilder/StringBuffer String — иммутабельный байтовый массив • StringBuilder — helper-класс для построения строк, не предоставляет гарантий синхронизации • StringBuffer — то же, что и StringBuilder, с synchronized методами
  • Библиотека джависта

    Научитесь разрабатывать микросервисную архитектуру! Первые шаги в этом направлении вы можете сделать на открытых уроках онлайн-курса «Microservice Architecture» OTUS для для бэкенд-разработчиков, тимлидов и администраторов. Занятие проведут опытные архитекторы. 🗓 «Паттерны аутентификации и авторизации» — 13 сентября в 20:00 мск. Узнаете о различных паттернах аутентификации и авторизации, а также о сессионной аутентификации на основе кук и токенов (jwt) и работе identity провайдеров. 👉🏻 Пройдите вступительный тест для записи на урок — https://otus.pw/B5Oe/ 🗓 «Тестирование в микросервисной архитектуре» — 21 сентября в 20:00 мск. Узнаете о различных типах тестов и инструментах, используемых в тестировании, а также поговорим о том, как микросервисная архитектура изменила подходы к тестированию. 👉🏻 Пройдите вступительный тест для записи на урок — https://otus.pw/3vww/