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

Java библиотека. Страница 21

12847 @javalib

Всё для Java разработчиков.

  • Java библиотека

    👩‍💻 Вопросы с senior java интервью [1/3] Автор прошел и провел достаточное количество интервью и решил поделиться типовыми вопросами с собеседований, всего планирует 3 части, все вопросы реально спрашивали.
    Вопросы с senior java интервью [1/3]

    Всем привет! Я прошел и провел достаточное количество интервью и решил поделиться типовыми вопросами с собеседований, всего планирую 3 части, все вопросы реально спрашивали. Ссылка на код: https://github.com/kirya522/medium-posts/tree/main/java/interview-questions Telegram канал с обсуждениями, вопросами, инсайдами: https://t.me/kirya522 Чат для зрителей канала, также туда выкладываю интересные ссылки, источники: https://t.me/kirya522_chat Лайв канал https://www.youtube.com/@kirya522-live Поддержать канал https://www.donationalerts.com/r/kirya522 Тайм-коды: 0:00 - Вступление 0:25 - Эти вопросы реально спрашивают 0:52 - Как устроен ролик 1:53 - Примитивы и доступ по значению (доступ всегда по значению) 3:53 - Пример с Boolean, который был несколько раз 4:58 - Хэш мапа и equals 6:00 - Как сломать мапу мутабельным ключом 7:30 - Плохое распределение хэшей 11:36 - Фреймворк коллекций (Collection framework) 12:30 - Устройство листов, почему linkedlist не используют в проде 13:50 - Иерархия исключений 14:48 - Optional и хитрости работы с ними 16:50 - Thread-local и то как его использовать 17:50 - Наследуемый Thread-local 19:20 - Стримы и примитивные стримы 22:25 - Хитрости try-catch-finally 23:38 - Try-with resource, Autoclosable 25:15 - Conditionalы, как создать свой стартер, логика конфигураций 28:05 - Жизненный цикл бинов, логика создания объектов 30:14 - Докер и зачем он нужен

    YouTube
  • Java библиотека

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

    🧠 Учитесь программировать на курсе Java-разработчик с трудоустройством. Вы пройдёте путь от новичка до junior-специалиста и сможете зарабатывать до 100 000 рублей уже в начале карьеры. Вы с нуля освоите Java, SQL, Spring и Git. Создадите поисковый движок для портфолио и разработаете backend-составляющую для книжного интернет-магазина — аналога ЛитРес. Бонусы для участников курса: ✅ первые 3 месяца — бесплатно; ✅ через 4 месяца сможете устроиться junior-разработчиком; ✅ удобная рассрочка и скидка; ✅ гарантия трудоустройства от Центра карьеры Skillbox. Если вы не выйдете на работу, мы вернём вам деньги за курс; ✅ год бесплатного английского. По промокоду "JAVA" скидка 50% по ссылке https://goo.su/fhdLv
  • Реклама

  • Java библиотека

    Head First. Паттерны проектирования. 2-е издание (2021) PDF Не имеет смысла каждый раз изобретать велосипед, лучше сразу освоить приемы проектирования, которые уже созданы людьми, сталкивавшимися с аналогичными задачами. В этой книге рассказано, какие паттерны действительно важны, когда и при каких условиях ими необходимо пользоваться, как применить их в ваших проектах и на каких принципах объектно-ориентированного проектирования они построены. Присоединяйтесь к сотням тысяч разработчиков, которые повысили свою квалификацию объектно-ориентированного проектирования благодаря книге «Head First. Паттерны проектирования».Если вы уже читали книги из серии Head First, то знаете, что вас ждет визуально насыщенный формат, разработанный с учетом особенностей работы мозга.
  • Java библиотека

    👩‍💻 Разбор и вычисление арифметических выражений на Java Разберёмся, как можно вычислять арифметические выражения. Предположим, на вход нам поступает строка текста, которая содержит корректное арифметическое выражение. Это выражение состоит из пробелов, чисел, скобок и знаков, обозначающих основные математические действия (плюс, минус, умножить, разделить). Нам нужно разобрать это выражение на отдельные элементы, а затем вычислить результат с учётом приоритетов математических операций. Обработку такого выражения можно разделить на три основных этапа: 1. Разбиение строки на отдельные части 2. Обработка этих частей с учётом математических операций 3. Само вычисление
    Разбор и вычисление арифметических выражений на Java

    #алгоритмы #java #калькулятор Разберёмся, как можно вычислять арифметические выражения. Предположим, на вход нам поступает строка текста, которая содержит корректное арифметическое выражение. Это выражение состоит из пробелов, чисел, скобок и знаков, обозначающих основные математические действия (плюс, минус, умножить, разделить). Нам нужно разобрать это выражение на отдельные элементы, а затем вычислить результат с учётом приоритетов математических операций. Обработку такого выражения можно разделить на три основных этапа: 1. Разбиение строки на отдельные части 2. Обработка этих частей с учётом математических операций 3. Само вычисление Подробнее см. https://devmark.ru/article/java-calculator-example

    YouTube
  • Java библиотека

    Практика реактивного программирования в Spring 5 (2019) PDF Создание облачных реактивных систем с помощью Spring 5 и Project Reactor Современному бизнесу необходимы программные системы нового типа, способные оставаться отзывчивыми при любых нагрузках. Эту потребность можно удовлетворить с использованием приемов реактивного программирования; однако разработка таких систем - сложная задача, требующая глубокого понимания предметной области. Для разработки отзывчивых систем разработчики Spring Framework придумали и создали проект Project Reactor. Данная книга начинается с основ реактивного программирования в Spring. Вы исследуете многочисленные возможности построения эффективных реактивных систем с помощью Spring 5 и других инструментов, таких как WebFlux и Spring Boot. Познакомитесь с методами реактивного программирования и научитесь использовать их для взаимодействий с базами данных и между серверами.
  • Java библиотека

    Какое из следующих утверждений о потоках неверно? 1. Если метод start() вызывается дважды для одного и того же объекта Thread, во время выполнения генерируется исключение. 2. Порядок, в котором запускались потоки, может не совпадать с порядком их фактического выполнения. 3. Если метод run() вызывается напрямую для объекта Thread, во время выполнения генерируется исключение. 4. Если метод sleep() вызывается для потока, во время выполнения синхронизированного кода, блокировка не снимается. Правильный ответ: 3. Если метод run() вызывается напрямую для объекта Thread, во время выполнения исключение не генерируется. Однако, код, написанный в методе run() будет выполняться текущим, а не новым потоком. Таким образом, правильный способ запустить поток – это вызов метода start(), который приводит к выполнению метода run() новым потоком. Вызов метода start() дважды для одного и того же объекта Thread приведёт к генерированию исключения IllegalThreadStateException во время выполнения, следовательно, утверждение 1 верно. Утверждение 2 верно, так как порядок, в котором выполняются потоки, определяется Планировщиком потоков, независимо от того, какой поток запущен первым. Утверждение 4 верно, так как поток не освободит блокировки, которые он держит, когда он переходит в состояние Ожидания.
  • Java библиотека

    Kotlin заходит в Telegram! Рассказываем про Kotlin — молодой язык родом из Питера, который вовсю теснит Java в мобильной и бэкенд-разработке. Его официально поддерживает Google, используют Jira и Adobe, а разработчики топовых приложений для Android переписывают на Kotlin свои продукты. Советуем подписаться, чтобы узнавать больше!
  • Java библиотека

    🔥 Как создать простой чат с помощью Firebase и Kotlin? Узнайте и попробуйте 24 марта в 20:00 мск на открытом уроке онлайн-курса «Kotlin Backend Developer. Professional» в OTUS. 📚Что будет на занятии? - Посмотрим в структуру firebase, создание и подключение аккаунта - Разберем и продумаем архитектуру чата - Реализуем клиента для чат приложения, используя Realtime Database В результате вебинара у вас будет базовое умение работы с Firebase, знание, как работает realtime база данных и онлайн-чат, полностью написанный на Kotlin. 👉 Регистрация на вебинар: https://otus.pw/3TiH/ Не упустите возможность протестировать обучение, а продолжить вы сможете уже на курсе, доступном в рассрочку. Реклама. Информация о рекламодателе на сайте www.otus.ru
  • Java библиотека

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

    Основы Java. 2-е изд. (2019) PDF, DJVU Описан базовый синтаксис языка Java: типы данных, операторы, условия, циклы, регулярные выражения, лямбда-выражения, ссылки на методы, объектно-ориентированное программирование. Рассмотрены основные классы стандартной библиотеки, получение данных из сети Интернет, работа с базой данных MySQL. Приводится описание Date API, Stream API, лямбда-выражений, ссылок на методы, функциональные интерфейсы и др. Во втором издании приводится описание большинства нововведений: модули, интерактивная оболочка JShell, инструкция var и др. Книга содержит большое количество практических примеров, помогающих начать программировать на языке Java самостоятельно. Весь материал тщательно подобран, хорошо структурирован и компактно изложен, что позволяет использовать книгу как удобный справочник. Электронный архив с примерами из книги можно скачать с сайта издательства.
  • Java библиотека

    👩‍💻 GraphQL в Spring Boot и проблема N + 1 GraphQL - это стандарт клиент-серверного взаимодействия, который позволяет гибко запрашивать данные с сервера. Основное отличие от традиционных REST-запросов состоит в том, что клиент сам выбирает, какие поля он будет запрашивать у сервера, тогда как REST предполагает заранее определённый фиксированный формат. При этом сервер будет подгружать из хранилища ровно те поля, которые необходимы и ничуть не больше. Относительно недавно в Spring Boot появился компонент для работы c GraphQL и мы сделаем проект на его основе. Для удобства отладки также подключим отладочный веб-интерфейс graphiql. Ещё рассмотрим проблему N+1, когда для каждого элемента результирующего списка выполняется дополнительный запрос.
    GraphQL в Spring Boot и проблема N + 1

    #spring #graphql #kotlin GraphQL - это стандарт клиент-серверного взаимодействия, который позволяет гибко запрашивать данные с сервера. Основное отличие от традиционных REST-запросов состоит в том, что клиент сам выбирает, какие поля он будет запрашивать у сервера, тогда как REST предполагает заранее определённый фиксированный формат. При этом сервер будет подгружать из хранилища ровно те поля, которые необходимы и ничуть не больше. Относительно недавно в Spring Boot появился компонент для работы c GraphQL и мы сделаем проект на его основе. Для удобства отладки также подключим отладочный веб-интерфейс graphiql. Ещё рассмотрим проблему N+1, когда для каждого элемента результирующего списка выполняется дополнительный запрос. Полезные ссылки: https://devmark.ru/article/spring-boot-graphql-example https://github.com/devmarkru/spring-boot-graphql-example

    YouTube
  • Java библиотека

    🦾 Работаешь с Java? - Погрузись во все тонкости профессиональной разработки! Пройди тест из 20 вопросов и проверь свои знания. Сможешь сдать — пройдёшь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене. 👩‍💻Преимущества программы курса: За 6 месяцев вы узнаете, как создавать современные приложения на Java, поймете основы функционирования JVM, освоите приемы применения многопоточности и научитесь решать задачи уровня Middle+. Занятия в формате живых вебинаров проводят преподаватели-практики, а после дают развернутый фидбэк на домашние задания. В конце обучения вы напишете выпускной проект на любую тему под контролем преподавателя и после обучения сможете претендовать на зарплату от 200 тыс. рублей. 🎫Возможна оплата курса в рассрочку Для того чтобы проверить твой уровень знаний по Java, и подходит ли тебе курс, необходимо пройти тест. 👉 ПРОЙТИ ТЕСТ: https://otus.pw/4rzB/ Реклама. Информация о рекламодателе на сайте otus.ru
  • Java библиотека

    OCP Oracle Certified Professional Java SE 17 Developer Practice Tests: Exam 1Z0-829 (2022) pdf, epub In OCP Oracle Certified Professional Java SE 17 Developer Practice Tests: Exam 1Z0-829, a team of veteran Java developers helps you gain the confidence and knowledge you need to take the Oracle Certified Professional Java SE 17 Developer exam. Hundreds of domain-by-domain questions accompany complimentary online access to bonus questions, providing you with over 1000 practice questions and answers. You’ll also get: Access to Sybex's proven online interactive learning environment and test bank Comprehensive coverage of every domain included on the OCP Java SE 17 Developer exam Three complete bonus practice exams to help you gain confidence and develop proficiency in Java development This resource is perfect for anyone preparing to take Exam 1Z0-829. It also belongs on the bookshelves of novice and veteran Java programmers hoping to improve their on-the-job coding skills.
  • Java библиотека

    👨🏻‍💻 Интересно функциональное программирование? Начните изучение Scala — это один из самых высокооплачиваемых языков программирования в мире. Его используют многие крупные компании, такие как Twitter, LinkedIn, Тинькофф-банк и крупнейшие производители ПО. Перейти в эту область тебе поможет онлайн-курс «Scala Developer» от OTUS. Пройди вступительный тест, чтобы проверить свой уровень подготовки для курса и получить доступ ко всем открытым-урокам. На курсе тебя ждет 4 месяца интенсивной практики и поддержки ведущих экспертов по Scala. На нем ты: - научишься использовать Akka для создания микросервисов, - освоишь функциональное программирование и библиотеку ZIO, - освоишь модульные тесты на основе инвариантов свойств и многое другое. 👉🏻 Вступительный тест — https://otus.pw/pfdG/ Курс рассчитан на разработчиков с опытом от 1 года на Java или с опытом от 3-х лет на других языках ООП. Реклама. Информация о рекламодателе на сайте www.otus.ru.
  • Реклама

  • Java библиотека

    Что такое busy spin? busy spin – это техника, которую программисты используют, чтобы заставить поток ожидать при определённом условии. В отличие от традиционных методов wait(), sleep() или yield(), которые подразумевают уступку процессорного времени, этот метод вместо уступки выполняет пустой цикл. Это необходимо, для того, чтобы сохранить кэш процессора, т.к. в многоядерных системах, существует вероятность, что приостановленный поток продолжит своё выполнение уже на другом ядре, а это повлечет за собой перестройку состояния процессорного кэша, которая является достаточно затратной процедурой.
  • Java библиотека

    9 ложных или устаревших представлений о Java С момента первого выпуска Java в 1995 году многое изменилось как в программном, так и в аппаратном обеспечении. А переход на шестимесячный цикл релизов способствовал стремительной эволюции языка и инструментов Java. В этой статье рассматриваются ложные и устаревшие представления о Java. Читать статью
  • Java библиотека

    Грокаем функциональное мышление (2023) PDF Кодовые базы разрастаются, становясь всё сложнее и запутаннее, что не может не пугать разработчиков. Как обнаружить код, изменяющий состояние вашей системы? Как сделать код таким, чтобы он не увеличивал сложность и запутанность кодовой базы? Большую часть «действий», изменяющих состояние, можно превратить в «вычисления», чтобы ваш код стал проще и логичнее. Вы научитесь бороться со сложными ошибками синхронизации, которые неизбежно проникают в асинхронный и многопоточный код, узнаете, как компонуемые абстракции предотвращают дублирование кода, и откроете для себя новые уровни его выразительности. Книга предназначена для разработчиков среднего и высокого уровня, создающих сложный код. Примеры, иллюстрации, вопросы для самопроверки и практические задания помогут надежно закрепить новые знания.