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

Библиотека Java разработчика. Страница 30

9291 @BookJava

Библиотека Java разработчика. Книги по программированию на Java.

  • Библиотека Java разработчика

    Тагир Валеев — Stream API: рекомендации лучших собаководов Stream API уже не первый год с нами и многие вовсю им пользуются. После первоначальной радости возникает понимание, что далеко не всё удаётся сделать стандартными средствами красиво. Мы посмотрим на некоторые типовые задачи, которые хотелось бы решить на Stream API, но не очень очевидно, как это сделать красиво. Будет также рассказано о паре сторонних библиотек, которые облегчают жизнь. 👉@BookJava
  • Библиотека Java разработчика

    Как работают стримы? Пакет java.util.stream – это средства потоковой обработки данных в функциональном стиле. Они не имеют ничего общего (кроме названия) с потоками ввода-вывода. Типичные применения – конвертация, переупаковка, и агрегация данных. Три основных понятия Java Stream API – источник данных, промежуточная (intermediate), и терминальная (terminal) операции. Источником может быть заранее заданный набор данных, или динамический генератор, возможно даже бесконечный. Сам источник никогда не модифицируется последующими операциями. Промежуточные операции модифицируют стрим. На одном потоке можно вызвать сколько угодно промежуточных операций. Терминальная операция «потребляет» поток. Она может быть только одна, в конце работы с отдельно взятым стримом. Стримы работают лениво – вся цепочка промежуточных операций не начнет выполняться до вызова терминальной. Типичный пример использования стримов – map-reduce. Map – промежуточная операция, reduce – терминальная. Источники и промежуточные операции могут изменять набор характеристик потока, которые влияют на дальнейшую обработку. Операция может иметь свойства – элементы перечисления StreamOpFlag: • SORTED – можно сравнивать элементы; • ORDERED – определен порядок обхода; • DISTINCT – содержит уникальные элементы, без дублей; • SIZED – имеет определенный размер; • SHORT_CIRCUIT – операция, которая может приводить к короткому замыканию. Для лучшего погружения рекомендуется к просмотру доклад Тагира Валеева. #Классы 👉@BookJava
  • Библиотека Java разработчика

    Это приглашение на «быстрое свидание» с работой мечты в команде Сбера. One Day Offer — самый короткий путь до оффера. Пройти собеседование и получить ответ в тот же день можно 16 и 17 июля по двум вакансиям: Data Engineer в ИТ-команду «Комплаенс» и Java Developer в ИТ-подразделение «Сеть продаж». Как это работает? Шаг 1. 16 июля или 17 июля (в зависимости от вакансии) подключитесь к онлайн-интервью. Шаг 2. Получите предложение о работе, о которой мечтали, в тот же день. Шаг 3. А дальше — вместе со своей командой разрабатывайте крутые и важные продукты Сбера. Прочитать подробнее о вакансиях и отправить заявку на участие в One Day Offer можно здесь.
  • Реклама

  • Библиотека Java разработчика

    Чем ForkJoinPool отличается от ExecutorService? ForkJoinPool сам по себе является наследником ExecutorService. Вопрос подразумевает его отличия от обычного пула потоков – ThreadPoolExecutor. Основное отличие – стратегия work stealing, которая уже упоминалась в предыдущем посте. Этой стратегии посвящена глава 5.3.3 Java Concurrency in Practice. Преимущества, которые дает work stealing по сравнению с обычным пулом: • Сокращение расходов на переключение контекста; • Защита от проблемы голодания потоков (thread starvation); • Защита от дедлока для рекурсивных задач. Как положено любому представителю ExecutorService, ForkJoinPool тоже умеет выполнять Runnable и Callable, но помимо этого работает и со специальными задачами ForkJoinTask, о которых также говорилось ранее. Интерфейс настройки и мониторинга остается тем же, что и в классических тред-пулах. Каждый обычный пул использует собственный набор потоков. ForkJoinPool по умолчанию использует общий пул-синглтон commonPool. Альтернативный отдельный пул всё еще можно задать в конструкторе. ForkJoinPool сам регулирует количество запущенных потоков, достигая максимальной эффективности при заданном уровне параллелизма. #Многопоточность 👉@BookJava
  • Библиотека Java разработчика

    Что такое ForkJoinPool? ForkJoinPool – специальный вид ExecutorService (пулла потоков), который появился в Java с версии 7. Предназначен для выполнения рекурсивных задач. Задача для сервиса представляется экземпляром класса ForkJoinTask. В основном используются подклассы RecursiveTask и RecursiveAction, для задач с результатом и без соответственно. Аналогично интерфейсам Callable и Runnable обычного ExecutorService. Тело рекурсивной операции задается в реализации метода compute() задачи ForkJoinTask. Здесь же создаются новые подзадачи, и запускаются параллельно методом fork(). Чтобы дождаться завершения выполнения задачи, на каждой форкнутой подзадаче вызывается блокирующий метод join(), результат выполнения при необходимости агрегируется. С точки зрения использования метод ForkJoinTask.join() похож на аналогичный метод класса Thread. Но в случае fork-join поток может на самом деле не заснуть, а переключиться на выполнение другой задачи. Такая стратегия называется work stealing, и позволяет эффективнее использовать ограниченное количество потоков. Это похоже на переиспользование потоков корутинах Kotlin (green threads). Примеры практического использования ForkJoinPool. #Многопоточность 👉@BookJava
  • Библиотека Java разработчика

    Хотите стать тем самым программистом? Что и сервис разработает, и игру создаст, и чат-бота запрограммирует? Тогда освойте Java-разработку в GeekBrains! На курсе вы изучите один из самых распространённых языков программирования Java и получите востребованную профессию. По окончании обучения вы: — сможете создавать сетевые чаты, приложения, мобильные игры и другие сервисы; — освоите востребованную профессию с нуля и сможете развивать карьеру на международном уровне; — добавите четыре проекта в портфолио и получите диплом о профессиональной переподготовке. О вашем будущем позаботится GeekBrains! Вместе с экспертами платформы вы скорректируете резюме и подготовитесь к прохождению собеседований. Почему GeekBrains: — занятия в онлайн-формате; — эксперты-практики из Яндекса и Ростелекома; — поддержка наставников и кураторов; — доступно обучение в рассрочку. Пока вы читаете этот пост, кто-то уже записался на онлайн-курс «ФакультетJava-разработки». Переходите по ссылке и оставляйте заявку, чтобы получить скидку на обучение: l='noreferrer nofollow' href='https://clck.ru/sGEnG'>https://clck.ru/sGEnG
  • Библиотека Java разработчика

    Как написать простейшее клиент-серверное приложение? Без применения дополнительных библиотек, основа низкоуровневого сетевого взаимодействия в Java строится на двух классах: Socket и ServerSocket. Socket – клиентское подключение. Отправляет запросы и получает ответы с заданного порта/адреса по TCP/IP-соединению. Наследники могут реализовывать протоколы более высокого уровня сетевого стека, например SSLSocket. Похож на утилиту netcat из Unix-систем. Обслуживает одно подключение к серверу, обменивается данными через InputStream и OutputStream. ServerSocket – сервер, приёмник подключений. Занимает на машине заданный свободный порт, и в одиночку принимает все подключения к нему. Опционально можно задать свой адрес, если текущая машина доступна по нескольким, а сокет должен быть доступен только по одному из них. Ключевой метод серверного сокета – accept(). Вызов этого метода блокирует исполнение до тех пор, пока не придет новый запрос от клиента. Возвращает пришедший запрос в виде экземпляра класса Socket. Чтобы сделать сервер параллельным, accept() должен вызываться в параллельных потоках. Стандартную внутреннюю реализацию сокетов можно подменить, установив для них статическую фабрику типа SocketImplFactory, методом setSocketFactory(). Для высокоуровневых (HTTP, FTP) запросов в стандартной библиотеке есть класс URLConnection и его наследники. Полный пример клиент-серверного приложения доступен в туториале на сайте Oracle. #Сеть 👉@BookJava
  • Библиотека Java разработчика

    Разыскиваются опытные разработчики, чтобы обучиться профессии архитектора ПО на онлайн-курсе Skillbox. Вы познакомитесь с инструментами и лучшими практиками построения архитектуры ПО. Научитесь выбирать архитектурный стиль под конкретную бизнес-задачу, сможете создавать масштабируемые отказоустойчивые приложения и повысите свой доход. Формат: — Онлайн-занятия. — Отработка на практических примерах. — Обратная связь от проверяющих экспертов и кураторов. — Защита итогового проекта. Первый месяц обучения бесплатно. Вы сможете изучать материалы курса в удобном для вас режиме. Для обучения достаточно 3-5 часов в неделю. Курс записан совместно с «Альфа-Банком». Записаться на курс со скидкой или получить бесплатную консультацию: https://clc.to/oIvdnw
  • Библиотека Java разработчика

    Подборка каналов для IT специалистов 🎯 https://t.me/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻 https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С https://t.me/kotlin_lib Подборки полезного материала по Kotlin https://t.me/nodejs_lib Подборки по Node js и все что с ним связано https://t.me/React_lib Подборки по React js и все что с ним связано https://t.me/ruby_lib Библиотека Ruby программиста Программирование C++📌 https://t.me/cpp_lib Библиотека C/C++ разработчика https://t.me/cpp_knigi Книги для программистов C/C++ Программирование Python 📌 https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍 https://t.me/BookPython Библиотека Python разработчика https://t.me/python_real Python подборки на русском и английском https://t.me/python_360 Книги по Python Rus Java разработка 📌 https://t.me/BookJava Библиотека Java разработчика https://t.me/java_360 Книги по Java Rus GitHub Сообщество 📌 https://t.me/Githublib Интересное из GitHub CodePen 📌 https://t.me/codepen_1 Сообщество пользователей CodePen Базы данных (Data Base) 📌 https://t.me/database_info Все про базы данных Мобильная разработка: iOS, Android 📌 https://t.me/developer_mobila Мобильная разработка Фронтенд разработка 📌 https://t.me/frontend_1 Подборки для frontend разработчиков Разработка игр 📌 https://t.me/game_devv Все о разработке игр Вакансии 📌 https://t.me/sysadmin_rabota Системный Администратор https://t.me/progjob Вакансии в IT Чат программистов📌 https://t.me/developers_ru Библиотеки 📌 https://t.me/book_for_dev Книги для программистов Rus https://t.me/programmist_of Книги по программированию https://t.me/proglb Библиотека программиста https://t.me/bfbook Книги для программистов БигДата, машинное обучение 📌 https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning Программирование 📌 https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций https://t.me/coddy_academy Полезные советы по программированию QA, тестирование 📌 https://t.me/testlab_qa Библиотека тестировщика Шутки программистов 📌 https://t.me/itumor Шутки программистов Защита, взлом, безопасность 📌 https://t.me/thehaking Канал о кибербезопасности Книги, статьи для дизайнеров 📌 https://t.me/ux_web Статьи, книги для дизайнеров https://t.me/arhitekturamira World Architecture Системное администрирование 📌 https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало) https://t.me/sysadminof Книги для админов, полезные материалы https://t.me/i_odmin Все для системного администратора https://t.me/i_odmin_book Библиотека Системного Администратора https://t.me/i_odmin_chat Чат системных администраторов https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др. Английский 📌 https://t.me/UchuEnglish Английский с нуля Математика 📌 https://t.me/Pomatematike Канал по математике Арбитраж трафика 📌 https://t.me/partnerochkin CPA и арбитраж трафика Крипта 📌 https://t.me/bitkoinoff Новости криптовалют Метавселенная, GameFi, Crypto 📌 https://t.me/metaverse360 DeepFake 📌 https://t.me/deepfakenow Публикуем deepfake видео Мир технологий 📌 https://t.me/mir_teh Видео из мира технологий Excel лайфхак📌 https://t.me/Excel_lifehack
    1C программист

    Cтатьи, курсы, советы, шаблоны кода 1С

    Telegram
  • Библиотека Java разработчика

    Жил на свете добрый Jooq – как подружиться с хранимками в Oracle В данной статье я хотел бы познакомить вас (в очередной раз, так как на хабре уже есть несколько статей, посвященных этой библиотеке) с Jooq и показать, как можно легко работать с хранимыми процедурами Oracle. Будет немного вводной части, а затем посмотрим примеры.
    Жил на свете добрый Jooq – как подружиться с хранимками в Oracle

    Приветствую! Меня зовут Артём, я back-end разработчик на продукте WFM ( Workforce Management ). В компании наш продукт помогает в развитии процессов розничной сети, одна из основных наших задач — это...

    Хабр
  • Библиотека Java разработчика

    Оформите карту Visa или Mastercard в банке Казахстана онлайн Не можете продлить нужный сервис, снять валюту за рубежом или получить международный перевод? Команда Финакс запустила сервис, в котором граждане РФ могут оформить онлайн карту Visa или Mastercard в банке Казахстана. С помощью этого бота уже более 1000 россиян открыли зарубежные счета. Для чего она подходит: - Оплата зарубежных сервисов и покупок - Хранение валютных сбережений - Получение оплат из-за рубежа - Использование в путешествиях Весь процесс проходит онлайн, от вас потребуется только загранпаспорт. Оформить заявку и почитать ответы на частые вопросы можно в нашем боте: 👉 https://t.me/Vostokpay_bot
  • Библиотека Java разработчика

    Как изменить значение приватного финального поля? Стоит сразу сказать, это очень плохая практика. Такое изменение грубо нарушает принципы сокрытия данных, и потенциально ломает инвариантность состояния объекта. Для этого трюка необходимо прибегнуть к использованию Reflection API. Сначала получим дескриптор поля – экземпляр класса Field. У объекта метакласса Class<X> интересующего нас класса вызовем метод getDeclaredField(). Просто getField() не сработает, потому что он работает только с публичными полями. Параметром передается строка с именем поля. Полученного экземпляра Field уже достаточно для доступа к изменяемым приватным полям. Перед обращением требуется сделать его доступным, вызвав setAccessible(true). Сам доступ осуществляется методами get*() и set*(). Так как Field представляет дескриптор поля класса, без привязки к конкретному экземпляру класса, экземпляр передается параметром в методы доступа. Для статического поля передается null. Чтобы побороть неизменяемость финального поля, нужно снять его модификатор final. Все модификаторы поля хранятся в поле modifiers дескриптора. То есть, нужно также с помощью рефлекшена сделать доступным и обновить поле уже объекта Field. Поле modifiers хранит модификаторы в виде битовой маски. Для изменения придется прибегнуть к битовым операторам. Полный код установки значения 42 в поле myField объекта myObject выглядит так: Field field = myObject.class.getDeclaredField( "myField" ); field.setAccessible( true ); Field modifiersField = Field.class.getDeclaredField( "modifiers" ); modifiersField.setAccessible( true ); modifiersField.setInt( field, field.getModifiers() & ~Modifier.FINAL ); field.setInt(myObject, 42); #Классы
  • Библиотека Java разработчика

    Java: A Beginner's Guide, Ninth Edition Herbert Schildt (2022) A practical introduction to Java programming-fully revised for the latest version, Java SE 17. Thoroughly updated for Java Platform Standard Edition 17, this hands-on resource shows, step by step, how to get started programming in Java from the very first chapter. Written by Java guru Herbert Schildt, the book starts with the basics, such as how to create, compile, and run a Java program. From there, you will learn essential Java keywords, syntax, and commands. Java: A Beginner's Guide, Ninth Edition covers the basics and touches on advanced features, including multithreaded programming, generics, Lambda expressions, and Swing. Enumeration, modules, and interface methods are also clearly explained. This guide delivers the appropriate mix of theory and practical coding necessary to get you up and running developing Java applications in no time! Скачать 👉 @java_360
  • Библиотека Java разработчика

    Как узнать IP по имени хоста? Для этого в пакете java.net стандартной библиотеки существует класс InetAddress, и два его наследника – Inet4Address и Inet6Address, для IPv4 и IPv6 соответственно. Один хост может разрешаться в несколько адресов. Статический метод getAllByName возвращает по хосту список IP (представленных классами InetAddress). При неудачном разрешении выбрасывается UnknownHostException. Метод getByName вернет один, первый попавшийся хост. Разрешенный адрес хоста сохраняется в кэше. На работу классов пакета java.net влияют некоторые сетевые настройки JVM. До Java 9 можно было сконфигурировать службу для разрешения имен (DNS). Обратите внимание, теперь такая возможность пропала, и всегда используется стандартная служба системы.
    Using multiple A-records for my domain - do web browsers ever try more than one?

    If I add multiple A-records for my domain, they are returned in a round robin order by DNS servers. Example: 192.0.2.1 A example.com 192.0.2.2 A example.com 192.0.2.3 A example.com But how does ...

    Webmasters Stack Exchange
  • Библиотека Java разработчика

    Зачем учить Java в 2022-м? Языку больше 20 лет, а на нём до сих пор пишут всё: сайты и мобильные приложения, нейросети и облачные сервисы. С помощью Java решают и социальные проблемы. В 2014 году компания mFrontiers получила премию от Oracle. Ребята создали трекер доступности питьевой воды в бедных регионах Кении. Софт был написан для Android-смартфонов на Java. Почему программисты выбирают Java? - Java постоянно развивается: язык пережил уже 11 версий - Производительность Java выше, чем у Python - Благодаря строгой типизации вероятность ошибок в Java меньше, чем в Python и JS - Junior-специалист может рассчитывать на зарплату от 90 000 рублей, а middle-специалистам платят в среднем 150 000 рублей. Чтобы ощутить всю силу Java, записывайтесь на курс «Профессия Java-разработчик» от Skillbox : https://clc.to/vS0C1g
  • Реклама

  • Библиотека Java разработчика

    Использование паттернов Event Sourcing и CQRS для разработки приложения на Spring Boot и Axon Framework Axon — это один из немногих фреймворков, который позволяет создавать гибкие микросервисные решения, используя архитектурные паттерны Event Sourcing и CQRS. Подход Event Sourcing сильно отличается от обычного метода создания приложений, когда для сохранения, изменения и выборки состояния объектов используется одно и тоже хранилище в базе данных. В Event Sourcing каждое действие, связанное с состоянием объекта, т.е. создание, изменение или запросы на получение, связано с событиями (Event). Для представления состояния используется агрегат (Aggregate). Для его изменения требуется создать определённое событие, которое несёт ограниченную логику изменения конкретной части агрегата. При этом сохраняются только события, а не сам агрегат и его состояние. В этой статье мы создадим простое приложение на примере библиотеки книг с использованием Spring Boot и Axon Framework.
    Использование паттернов Event Sourcing и CQRS для разработки приложения на Spring Boot и Axon Framework

    Axon — это один из немногих фреймворков, который позволяет создавать гибкие микросервисные решения, используя архитектурные паттерны Event Sourcing и CQRS. Подход Event Sourcing сильно отличается от обычного метода создания приложений, когда для сохранения, изменения и выборки состояния объектов используется одно и тоже хранилище в базе данных. В Event Sourcing каждое действие, связанное с состоянием объекта, т.е. создание, изменение или запросы на получение, связано с событиями (Event). Для представления состояния…

    Telegraph
  • Библиотека Java разработчика

    Подборка каналов для IT специалистов 🎯 https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С https://t.me/kotlin_lib Подборки полезного материала по Kotlin https://t.me/nodejs_lib Подборки по Node js и все что с ним связано https://t.me/React_lib Подборки по React js и все что с ним связано https://t.me/ruby_lib Библиотека Ruby программиста Программирование C++📌 https://t.me/cpp_lib Библиотека C/C++ разработчика https://t.me/cpp_knigi Книги для программистов C/C++ Программирование Python 📌 https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍 https://t.me/BookPython Библиотека Python разработчика https://t.me/python_real Python подборки на русском и английском https://t.me/python_360 Книги по Python Rus Java разработка 📌 https://t.me/BookJava Библиотека Java разработчика https://t.me/java_360 Книги по Java Rus GitHub Сообщество 📌 https://t.me/Githublib Интересное из GitHub CodePen 📌 https://t.me/codepen_1 Сообщество пользователей CodePen Базы данных (Data Base) 📌 https://t.me/database_info Все про базы данных Мобильная разработка: iOS, Android 📌 https://t.me/developer_mobila Мобильная разработка Фронтенд разработка 📌 https://t.me/frontend_1 Подборки для frontend разработчиков Разработка игр 📌 https://t.me/game_devv Все о разработке игр Вакансии 📌 https://t.me/sysadmin_rabota Системный Администратор https://t.me/progjob Вакансии в IT Чат программистов📌 https://t.me/developers_ru Библиотеки 📌 https://t.me/book_for_dev Книги для программистов Rus https://t.me/programmist_of Книги по программированию https://t.me/proglb Библиотека программиста https://t.me/bfbook Книги для программистов БигДата, машинное обучение 📌 https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning Программирование 📌 https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций https://t.me/coddy_academy Полезные советы по программированию QA, тестирование 📌 https://t.me/testlab_qa Библиотека тестировщика Шутки программистов 📌 https://t.me/itumor Шутки программистов Защита, взлом, безопасность 📌 https://t.me/thehaking Канал о кибербезопасности Книги, статьи для дизайнеров 📌 https://t.me/ux_web Статьи, книги для дизайнеров https://t.me/arhitekturamira World Architecture Системное администрирование 📌 https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало) https://t.me/sysadminof Книги для админов, полезные материалы https://t.me/i_odmin Все для системного администратора https://t.me/i_odmin_book Библиотека Системного Администратора https://t.me/i_odmin_chat Чат системных администраторов https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др. Английский 📌 https://t.me/UchuEnglish Английский с нуля Математика 📌 https://t.me/Pomatematike Канал по математике Арбитраж трафика 📌 https://t.me/partnerochkin CPA и арбитраж трафика Крипта 📌 https://t.me/bitkoinoff Новости криптовалют Метавселенная, GameFi, Crypto 📌 https://t.me/metaverse360 DeepFake 📌 https://t.me/deepfakenow Публикуем deepfake видео Мир технологий 📌 https://t.me/mir_teh Видео из мира технологий Excel лайфхак📌 https://t.me/Excel_lifehack
    1C программист

    Cтатьи, курсы, советы, шаблоны кода 1С

    Telegram
  • Библиотека Java разработчика

    Из чего состоит пакет java.nio? Этому вопросу посвящена отдельная страница документации. Если вы никогда раньше не сталкивались с Java NIO – это хорошее место для начала знакомства. Отвечая на этот вопрос, нужно перечислить и объяснить основные понятия NIO: Буфферы. Временные хранилища фиксированного размера для транспортируемых данных. Именно буферизация – основное отличие неблокирующего чтения от java.io. Каналы. Реализации интерфейса Channel – сущности, представляющие соединения между разными участниками ввода-вывода (файлы, сокеты, консоль). Селекторы. Наследники класса Selector. «Мультиплексоры» каналов – комбинируют несколько каналов в один. Регистрация канала в селекторе возвращает SelectionKey, который содержит ссылку на сам канал, и ряд его атрибутов. Селектор позволяет выбрать из набора зарегистрированных каналов подмножество готовых к работе, при необходимости блокируя выполнение на время ожидания. Каналы и селекторы располагаются в пакете java.nio.channels. Полный пример использования селекторов можно найти в статье на baeldung. Кодировки. Charset – то, как бинарные данные будут конвертироваться в родные для Java символы UTF-16 и обратно. Классы для работы с кодировками хранятся в пакете java.nio.charset. #Сеть #Многопоточность