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

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

20804 @javaproglib

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

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

    👔 Senior Java Developer ⛳️ Teza Capital 💼🥁 Работа в офисе 💵 от $4000 Подробнее: proglib.io/vacanci…22-06-03
    Вакансия Senior Java Developer в Teza Capital оплата по результатам собеседования, Полная занятость, Офис

    Teza Capital is a quantitative asset management firm that strives to develop innovative, high-Sharpe investment products for its clients. Originally founded in 2009 as a science and technology-driven global quantitative trading business, Teza derives its unique edge in asset management from its high-frequency trading past and science-based investment approaches.

    Библиотека программиста
  • Библиотека джависта

    #вопросы_с_собеседований Перечислите принципы, которым вы следуете в многопоточном программировании? При написании многопоточных программ следует придерживаться определённых правил, которые помогают обеспечить достойную производительность приложения в сочетании с удобной отладкой и простотой дальнейшей поддержки кода. ☕️ Всегда давайте значимые имена своим потокам. Процесс отладки, нахождения ошибок или отслеживание исключения в многопоточном коде – довольно сложная задача. OrderProcessor, QuoteProcessor или TradeProcessor намного информативнее, чем Thread1, Thread2 и Thread3. Имя должно отражать задачу, выполняемую данным потоком. ☕️ Избегайте блокировок или старайтесь уменьшить масштабы синхронизации. Блокировка затратна, а переключение контекста ещё более ресурсоёмко. Пытайтесь избегать синхронизации и блокировки насколько это возможно, и организуйте критическую секцию в минимально необходимом объёме. Поэтому синхронизированный блок всегда предпочительней синхронизированного метода, дополнительно наделяя возможностью абсолютного контроля над масштабом блокировки. ☕️ Обрабатывайте прерывание потока с особой тщательностью. Нет ничего хуже оставшегося заблокированным ресурса или системы в неконстистентном, по причине неподтверждённой транзакции, состоянии. ☕️ Помните об обработке исключений. Выброшенные InterruptedException должны быть адекватно обработаны, а не просто подавлены. Так же не стоит пренебрегать Thread.UncaughtExceptionHandler. При использовании пула потоков необходимо помнить, что он зачастую просто «проглатывает» исключения. Так, если вы отправили на выполнение Runnable нужно обязательно поместить код выполнения задачи внутрь блока try-catch. Если в очередь пула помещается Callable, необходимо удостоверится, что результат выполнения всегда изымается с помощью блокирующего get(), чтобы в случае возникновения существовала возможность заново выбросить произошедшее исключение. ☕️ Почти всегда использование Concurrent сollection выгоднее использования Synchronized сollection, т.к. первые более современны (используют все доступные на момент их написания новшества языка) и масштабируемы, чем их синхронизированные аналоги.
  • Библиотека джависта

    👽 Синдром самозванца: 5 способов преодоления чувства «незаслуженного успеха» Быть самозванцем на работе – чувство не из легких. Но ты такой не один. Разберемся, как определить синдром и как с ним бороться. https://proglib.io/sh/xs50XmbiUE
  • Реклама

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

    #вопросы_с_собеседований Даны 3 потока: Т1, Т2 и Т3. Как реализовать выполнение в последовательности Т1, Т2, Т3? Такой последовательности выполнения можно достичь многими способами, например, просто воспользоваться методом join(), чтобы запустить поток в момент, когда другой уже закончит своё выполнение. Для реализации заданной последовательности, нужно запустить последний поток первым, и затем вызывать метод join() в обратном порядке, то есть Т3 вызывает Т2.join, а Т2 вызывает Т1.join, таким образом Т1 закончит выполнение первым, а Т3 последним.
  • Библиотека джависта

    Одна из многих причина нежелания идти учиться на курсы по разработке — отсутствие гарантий, что деньги за курс не будут выброшены на ветер. В Kata Academy эти гарантии предоставляют. В договоре с Kata четко прописано, что вам не нужно платить за обучение до тех пор, пока вы не устроитесь на работу в IT. То есть во время обучения вы ничего не платите. Также в договоре указывается, что Kata гарантирует минимальную зарплату от 100 тысяч рублей в месяц. Если вы вдруг не смогли устроиться на работу, то за обучение платить не нужно. Связано это с тем, что цель Kata — ваше трудоустройство разработчиком, а если вам не удалось, значит на курсе вас не смогли подготовить должным образом. Записывайтесь на курс и получайте тестовое задание: https://clck.ru/hLfpy Если не уверены в своих силах — не переживайте, Kata дадут неплохой FAQ, который поможет с выполнением тестового!
  • Библиотека джависта

    #вопросы_с_собеседований Чем LinkedHashSet отличается от HashSet? LinkedHashSet отличается от HashSet только тем, что в его основе лежит LinkedHashMap вместо HashMap. Благодаря этому порядок элементов при обходе коллекции является идентичным порядку добавления элементов (insertion-order). При добавлении элемента, который уже присутствует в LinkedHashSet (т.е. с одинаковым ключом), порядок обхода элементов не изменяется.
  • Библиотека джависта

    #вопросы_с_собеседований В чем разница между HashMap и WeakHashMap? Для чего используется WeakHashMap? В Java существует 4 типа ссылок: сильные (strong reference), мягкие (SoftReference), слабые (WeakReference) и фантомные (PhantomReference). Особенности каждого типа ссылок связаны с работой Garbage Collector. Если объект можно достичь только с помощью цепочки WeakReference (то есть на него отсутствуют сильные и мягкие ссылки), то данный объект будет помечен на удаление. WeakHashMap - это структура данных, реализующая интерфейс Map и основанная на использовании WeakReference для хранения ключей. Таким образом, пара «ключ-значение» будет удалена из WeakHashMap, если на объект-ключ более не имеется сильных ссылок. В качестве примера использования такой структуры данных можно привести следующую ситуацию: допустим имеются объекты, которые необходимо расширить дополнительной информацией, при этом изменение класса этих объектов нежелательно либо невозможно. В этом случае добавляем каждый объект в WeakHashMap в качестве ключа, а в качестве значения - нужную информацию. Таким образом, пока на объект имеется сильная ссылка (либо мягкая), можно проверять хэш-таблицу и извлекать информацию. Как только объект будет удален, то WeakReference для этого ключа будет помещен в ReferenceQueue и затем соответствующая запись для этой слабой ссылки будет удалена из WeakHashMap.
  • Библиотека джависта

    ⁉️Как работать с командой в Git? 🗓 9 июня в 20:00 на открытом уроке в OTUS разберем самые важные практические навыки командной работы Виталий Куценко, Java Lead в RND подразделении Ростсельмаша. На занятии поговорим про Pull Request, обсудим, как давать и получать обратную связь и почему это важно. Ответим на вопросы, как ✔️ Делать доработки в рамках PR ✔️ Исправлять проблемы в PR ✔️ Решать конфликты и многое другое 📚Занятие пройдет в рамках углубленного онлайн-курса «Java Developer. Professional» для тех, кто уже установил и настроил свой Git. 📌Для участия пройдите вступительный тест: https://otus.pw/7e3Y/
  • Библиотека джависта

    #вопросы_с_собеседований Зачем нужен HashMap, если есть Hashtable? • Методы класса Hashtable синхронизированы, что приводит к снижению производительности, а HashMap - нет; • HashTable не может содержать элементы null, тогда как HashMap может содержать один ключ null и любое количество значений null; • Iterator у HashMap, в отличие от Enumeration у HashTable, работает по принципу «fail-fast» (выдает исключение при любой несогласованности данных). Hashtable — это устаревший класс, и его использование не рекомендовано.
  • Библиотека джависта

    A dev's thoughts on developer productivity

    Developers are systems thinkers and yet, most measures of developer productivity are metrics-based, instead of systems-based. In this post, Sourcegraph co-founder and CTO Beyang Liu presents five charts that visualize what really matters for developer productivity.

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

    🔥 Чем отличаются объектно-ориентированное и функциональное программирование? 📅 Приглашаем 1 июня в 20:00 мск на бесплатный вебинар «Объектно-ориентированное и функциональное программирование»! 📚 Вместе с практикующим экспертом Сергеем Петрелевичем мы на максимально простом уровне разберем отличия объектно-ориентированного и функционального подходов в программировании, а также рассмотрим примеры на языке Java. Урок рассчитан на новичков в IT и пройдет в рамках онлайн-курса «Специализация Java-разработчик». 📌 Регистрация на бесплатный вебинар: https://otus.pw/qbANE/
  • Библиотека джависта

    #вопросы_с_собеседований Как перебрать элементы LinkedList в обратном порядке, не используя медленный get(index)? Для этого в LinkedList есть обратный итератор, который можно получить вызва метод descendingIterator().
  • Библиотека джависта

    💎 Интересен язык Scala? ️️❇️ Начните осваивать его уже 7 июня в 20:00! Ждем вас на открытом уроке «Эффекты в Scala» в OTUS. Занятие проведет Алексей Воронец, руководитель разработки в NAUMEN. 📕 На открытом уроке мы рассмотрим понятие эффекта и сложности, которые могут возникать при наличии эффектов, введем понятие функционального эффекта, рассмотрим его свойства и реализуем свой небольшой функциональный эффект. ⚠️ Этот урок — часть онлайн-курса «Scala Developer». Программа рассчитана на специалистов с опытом в Java от 1 года ли на других ООП от 3-х лет. 👉 Для участия пройдите вступительный тест
  • Библиотека джависта

    #вопросы_с_собеседований Что такое «ссылка на метод»? Если существующий в классе метод уже делает все, что необходимо, то можно воспользоваться механизмом method reference (ссылка на метод) для непосредственной передачи этого метода. Такая ссылка передается в виде: ☕️ имя_класса::имя_статического_метода для статического метода; ☕️ объект_класса::имя_метода для метода экземпляра; ☕️ название_класса::new для конструктора. Результат будет в точности таким же, как в случае определения лямбда-выражения, которое вызывает этот метод. Ссылки на методы потенциально более эффективны, чем использование лямбда-выражений. Кроме того, они предоставляют компилятору более качественную информацию о типе и при возможности выбора между использованием ссылки на существующий метод и использованием лямбда-выражения, следует всегда предпочитать использование ссылки на метод.
  • Библиотека джависта

    ⛓ Уже не будущее: о технологии Blockchain простыми словами Много было сказано о блокчейне. Попробуем еще раз – проще и лаконичнее. https://proglib.io/sh/x3jGcCTVWU
  • Реклама

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

    #вопросы_с_собеседований Как из одного сервлета вызвать другой сервлет? Для вызова сервлета из того же приложения необходимо использовать механизм внутренней коммуникации сервлетов (inter-servlet communication mechanisms) через вызовы методов RequestDispatcher: ☕️ forward() - передаёт выполнение запроса в другой сервлет; ☕️ include() - предоставляет возможность включить результат работы другого сервлета в возвращаемый ответ. Если необходимо вызывать сервлет, принадлежащий другому приложению, то использовать RequestDispatcher уже не получится, т.к. он определен только для текущего приложения. Для подобных целей необходимо использовать метод ServletResponse - sendRedirect() которому предоставляется полный URL другого сервлета. Для передачи данных между сервлетами можно использовать cookies.
  • Библиотека джависта

    #вопросы_с_собеседований Какой класс предназначен для работы с элементами файловой системы? File работает непосредственно с файлами и каталогами. Данный класс позволяет создавать новые элементы и получать информацию существующих: размер, права доступа, время и дату создания, путь к родительскому каталогу.
  • Библиотека джависта

    Как устроена автоматизация в Почте России? А есть ли легаси? Все это можно узнать в Telegram-канале Почтатеха — ИТ-подразделения Почты, которое занимается разработкой цифровых продуктов. В нем вы также найдете актуальные вакансии, комментарии экспертов и множество интересного из мира информационных технологий. Подписывайтесь: @pochtatech
    Почтатех

    Разрабатываем сложные цифровые продукты для Почты России. Открытые вакансии: https://hr.pochta.tech/

    Telegram