Оформите карту Visa или Mastercard в банке Казахстана онлайн
Не можете продлить нужный сервис, снять валюту за рубежом или получить международный перевод?
Команда Финакс запустила сервис, в котором граждане РФ могут оформить онлайн карту Visa или Mastercard в банке Казахстана. С помощью этого бота уже более 1000 россиян открыли зарубежные счета.
Для чего она подходит:
- Оплата зарубежных сервисов и покупок
- Хранение валютных сбережений
- Получение оплат из-за рубежа
- Использование в путешествиях
Весь процесс проходит онлайн, от вас потребуется только загранпаспорт.
Оформить заявку и почитать ответы на частые вопросы можно в нашем боте:
👉 https://t.me/Vostokpay_bot
Не можете продлить нужный сервис, снять валюту за рубежом или получить международный перевод?
Команда Финакс запустила сервис, в котором граждане РФ могут оформить онлайн карту Visa или Mastercard в банке Казахстана. С помощью этого бота уже более 1000 россиян открыли зарубежные счета.
Для чего она подходит:
- Оплата зарубежных сервисов и покупок
- Хранение валютных сбережений
- Получение оплат из-за рубежа
- Использование в путешествиях
Весь процесс проходит онлайн, от вас потребуется только загранпаспорт.
Оформить заявку и почитать ответы на частые вопросы можно в нашем боте:
👉 https://t.me/Vostokpay_bot
👎12👍2
Жил на свете добрый Jooq – как подружиться с хранимками в Oracle
В данной статье я хотел бы познакомить вас (в очередной раз, так как на хабре уже есть несколько статей, посвященных этой библиотеке) с Jooq и показать, как можно легко работать с хранимыми процедурами Oracle. Будет немного вводной части, а затем посмотрим примеры.
В данной статье я хотел бы познакомить вас (в очередной раз, так как на хабре уже есть несколько статей, посвященных этой библиотеке) с Jooq и показать, как можно легко работать с хранимыми процедурами Oracle. Будет немного вводной части, а затем посмотрим примеры.
Хабр
Жил на свете добрый Jooq – как подружиться с хранимками в Oracle
Приветствую! Меня зовут Артём, я back-end разработчик на продукте WFM ( Workforce Management ). В компании наш продукт помогает в развитии процессов розничной сети, одна из основных наших задач — это...
👍3
Подборка каналов для 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
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
Telegram
1C программист
Cтатьи, курсы, советы, шаблоны кода 1С. По всем вопросам @evgenycarter
👍1
Как написать простейшее клиент-серверное приложение?
Без применения дополнительных библиотек, основа низкоуровневого сетевого взаимодействия в Java строится на двух классах:
Ключевой метод серверного сокета –
Стандартную внутреннюю реализацию сокетов можно подменить, установив для них статическую фабрику типа
Для высокоуровневых (HTTP, FTP) запросов в стандартной библиотеке есть класс
Полный пример клиент-серверного приложения доступен в туториале на сайте Oracle.
#Сеть
👉@BookJava
Без применения дополнительных библиотек, основа низкоуровневого сетевого взаимодействия в Java строится на двух классах:
Socket
и ServerSocket
. Socket
– клиентское подключение. Отправляет запросы и получает ответы с заданного порта/адреса по TCP/IP-соединению. Наследники могут реализовывать протоколы более высокого уровня сетевого стека, например SSLSocket
. Похож на утилиту netcat
из Unix-систем. Обслуживает одно подключение к серверу, обменивается данными через InputStream
и OutputStream
.ServerSocket
– сервер, приёмник подключений. Занимает на машине заданный свободный порт, и в одиночку принимает все подключения к нему. Опционально можно задать свой адрес, если текущая машина доступна по нескольким, а сокет должен быть доступен только по одному из них.Ключевой метод серверного сокета –
accept()
. Вызов этого метода блокирует исполнение до тех пор, пока не придет новый запрос от клиента. Возвращает пришедший запрос в виде экземпляра класса Socket
. Чтобы сделать сервер параллельным, accept()
должен вызываться в параллельных потоках.Стандартную внутреннюю реализацию сокетов можно подменить, установив для них статическую фабрику типа
SocketImplFactory
, методом setSocketFactory()
.Для высокоуровневых (HTTP, FTP) запросов в стандартной библиотеке есть класс
URLConnection
и его наследники.Полный пример клиент-серверного приложения доступен в туториале на сайте Oracle.
#Сеть
👉@BookJava
👍3
Хотите стать тем самым программистом? Что и сервис разработает, и игру создаст, и чат-бота запрограммирует?
Тогда освойте Java-разработку в GeekBrains! На курсе вы изучите один из самых распространённых языков программирования Java и получите востребованную профессию.
По окончании обучения вы:
— сможете создавать сетевые чаты, приложения, мобильные игры и другие сервисы;
— освоите востребованную профессию с нуля и сможете развивать карьеру на международном уровне;
— добавите четыре проекта в портфолио и получите диплом о профессиональной переподготовке.
О вашем будущем позаботится GeekBrains! Вместе с экспертами платформы вы скорректируете резюме и подготовитесь к прохождению собеседований.
Почему GeekBrains:
— занятия в онлайн-формате;
— эксперты-практики из Яндекса и Ростелекома;
— поддержка наставников и кураторов;
— доступно обучение в рассрочку.
Пока вы читаете этот пост, кто-то уже записался на онлайн-курс «ФакультетJava-разработки».
Переходите по ссылке и оставляйте заявку, чтобы получить скидку на обучение: https://clck.ru/sGEnG
Тогда освойте Java-разработку в GeekBrains! На курсе вы изучите один из самых распространённых языков программирования Java и получите востребованную профессию.
По окончании обучения вы:
— сможете создавать сетевые чаты, приложения, мобильные игры и другие сервисы;
— освоите востребованную профессию с нуля и сможете развивать карьеру на международном уровне;
— добавите четыре проекта в портфолио и получите диплом о профессиональной переподготовке.
О вашем будущем позаботится GeekBrains! Вместе с экспертами платформы вы скорректируете резюме и подготовитесь к прохождению собеседований.
Почему GeekBrains:
— занятия в онлайн-формате;
— эксперты-практики из Яндекса и Ростелекома;
— поддержка наставников и кураторов;
— доступно обучение в рассрочку.
Пока вы читаете этот пост, кто-то уже записался на онлайн-курс «ФакультетJava-разработки».
Переходите по ссылке и оставляйте заявку, чтобы получить скидку на обучение: https://clck.ru/sGEnG
Что такое ForkJoinPool?
Задача для сервиса представляется экземпляром класса
Тело рекурсивной операции задается в реализации метода
С точки зрения использования метод
Примеры практического использования ForkJoinPool.
#Многопоточность
👉@BookJava
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
👍4🔥1
Чем ForkJoinPool отличается от ExecutorService?
Основное отличие – стратегия work stealing, которая уже упоминалась в предыдущем посте. Этой стратегии посвящена глава 5.3.3 Java Concurrency in Practice.
Преимущества, которые дает work stealing по сравнению с обычным пулом:
• Сокращение расходов на переключение контекста;
• Защита от проблемы голодания потоков (thread starvation);
• Защита от дедлока для рекурсивных задач.
Как положено любому представителю
Интерфейс настройки и мониторинга остается тем же, что и в классических тред-пулах.
Каждый обычный пул использует собственный набор потоков.
#Многопоточность
👉@BookJava
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
👍10
Это приглашение на «быстрое свидание» с работой мечты в команде Сбера.
One Day Offer — самый короткий путь до оффера. Пройти собеседование и получить ответ в тот же день можно 16 и 17 июля по двум вакансиям: Data Engineer в ИТ-команду «Комплаенс» и Java Developer в ИТ-подразделение «Сеть продаж».
Как это работает?
Шаг 1. 16 июля или 17 июля (в зависимости от вакансии) подключитесь к онлайн-интервью.
Шаг 2. Получите предложение о работе, о которой мечтали, в тот же день.
Шаг 3. А дальше — вместе со своей командой разрабатывайте крутые и важные продукты Сбера.
Прочитать подробнее о вакансиях и отправить заявку на участие в One Day Offer можно здесь.
One Day Offer — самый короткий путь до оффера. Пройти собеседование и получить ответ в тот же день можно 16 и 17 июля по двум вакансиям: Data Engineer в ИТ-команду «Комплаенс» и Java Developer в ИТ-подразделение «Сеть продаж».
Как это работает?
Шаг 1. 16 июля или 17 июля (в зависимости от вакансии) подключитесь к онлайн-интервью.
Шаг 2. Получите предложение о работе, о которой мечтали, в тот же день.
Шаг 3. А дальше — вместе со своей командой разрабатывайте крутые и важные продукты Сбера.
Прочитать подробнее о вакансиях и отправить заявку на участие в One Day Offer можно здесь.
👍3
Как работают стримы?
Пакет
Три основных понятия Java Stream API – источник данных, промежуточная (intermediate), и терминальная (terminal) операции.
Источником может быть заранее заданный набор данных, или динамический генератор, возможно даже бесконечный. Сам источник никогда не модифицируется последующими операциями.
Промежуточные операции модифицируют стрим. На одном потоке можно вызвать сколько угодно промежуточных операций.
Терминальная операция «потребляет» поток. Она может быть только одна, в конце работы с отдельно взятым стримом. Стримы работают лениво – вся цепочка промежуточных операций не начнет выполняться до вызова терминальной.
Типичный пример использования стримов – map-reduce. Map – промежуточная операция, reduce – терминальная.
Источники и промежуточные операции могут изменять набор характеристик потока, которые влияют на дальнейшую обработку. Операция может иметь свойства – элементы перечисления
•
•
•
•
•
Для лучшего погружения рекомендуется к просмотру доклад Тагира Валеева.
#Классы
👉@BookJava
Пакет
java.util.stream
– это средства потоковой обработки данных в функциональном стиле. Они не имеют ничего общего (кроме названия) с потоками ввода-вывода. Типичные применения – конвертация, переупаковка, и агрегация данных.Три основных понятия Java Stream API – источник данных, промежуточная (intermediate), и терминальная (terminal) операции.
Источником может быть заранее заданный набор данных, или динамический генератор, возможно даже бесконечный. Сам источник никогда не модифицируется последующими операциями.
Промежуточные операции модифицируют стрим. На одном потоке можно вызвать сколько угодно промежуточных операций.
Терминальная операция «потребляет» поток. Она может быть только одна, в конце работы с отдельно взятым стримом. Стримы работают лениво – вся цепочка промежуточных операций не начнет выполняться до вызова терминальной.
Типичный пример использования стримов – map-reduce. Map – промежуточная операция, reduce – терминальная.
Источники и промежуточные операции могут изменять набор характеристик потока, которые влияют на дальнейшую обработку. Операция может иметь свойства – элементы перечисления
StreamOpFlag
:•
SORTED
– можно сравнивать элементы;•
ORDERED
– определен порядок обхода;•
DISTINCT
– содержит уникальные элементы, без дублей;•
SIZED
– имеет определенный размер;•
SHORT_CIRCUIT
– операция, которая может приводить к короткому замыканию.Для лучшего погружения рекомендуется к просмотру доклад Тагира Валеева.
#Классы
👉@BookJava
👍8
Media is too big
VIEW IN TELEGRAM
Тагир Валеев — Stream API: рекомендации лучших собаководов
Stream API уже не первый год с нами и многие вовсю им пользуются. После первоначальной радости возникает понимание, что далеко не всё удаётся сделать стандартными средствами красиво. Мы посмотрим на некоторые типовые задачи, которые хотелось бы решить на Stream API, но не очень очевидно, как это сделать красиво. Будет также рассказано о паре сторонних библиотек, которые облегчают жизнь.
👉@BookJava
Stream API уже не первый год с нами и многие вовсю им пользуются. После первоначальной радости возникает понимание, что далеко не всё удаётся сделать стандартными средствами красиво. Мы посмотрим на некоторые типовые задачи, которые хотелось бы решить на Stream API, но не очень очевидно, как это сделать красиво. Будет также рассказано о паре сторонних библиотек, которые облегчают жизнь.
👉@BookJava
👍3
Подборка каналов для 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
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
Telegram
1C программист
Cтатьи, курсы, советы, шаблоны кода 1С. По всем вопросам @evgenycarter
Как реализовать собственный стрим?
Любой стрим определяется его сплитератором.
Есть много способов получить готовый сплитератор или стрим, но чтобы создать полностью свою специфическую логику перебора элементов, придется написать собственный сплитератор.
Поток создается из сплитератора одним из статических методов класса
• Элементы перебираются методом
• При применении промежуточных и терминальных операций учитываются характеристики потока, изначально задаваемые методом
• Когда обработка стрима распараллеливается, методом
Подробно и доступно последовательность действий для реализации описана в статье на хабре.
#Классы
👉@BookJava
Любой стрим определяется его сплитератором.
Spliterator
– это специальный разделяемый внутренний итератор.Есть много способов получить готовый сплитератор или стрим, но чтобы создать полностью свою специфическую логику перебора элементов, придется написать собственный сплитератор.
Поток создается из сплитератора одним из статических методов класса
StreamSupport
. Вызов его методов осуществляется самим фреймворком. Вкратце его работа выглядит так: • Элементы перебираются методом
tryAdvance
, пока он не выдаст false
. Через параметр action к элементу применяются последующие операции. • При применении промежуточных и терминальных операций учитываются характеристики потока, изначально задаваемые методом
characteristics
.• Когда обработка стрима распараллеливается, методом
trySplit
от начала последовательности элементов «откусывается» часть, и возвращается завернутой в новый сплитератор. Текущий продолжает идти по оставшемуся хвосту. В идеале, по возможности эта часть – половина элементов потока. Если разделить уже нельзя, возвращается null
.Подробно и доступно последовательность действий для реализации описана в статье на хабре.
#Классы
👉@BookJava
Хабр
Пишем свой Spliterator
Многие из вас уже попробовали на вкус Stream API — потоки Java 8. Наверняка у некоторых возникло желание не только пользоваться готовыми потоками от коллекций, м...
👍2
Обработка исключений в Java в функциональном стиле
В данной статье автор предоставит информацию о собственной библиотеке для обработки исключений (Exception) в функциональном стиле.
В Java начиная с версии 8 появились новые возможности в виде функциональных интерфейсов и потоков (Stream API). Эти возможности позволяют писать код в новом функциональном стиле без явных циклов, временных переменных, условий ветвления и проч. Я уверен что этот стиль программирования станет со временем основным для большинства Java программистов.
👉@BookJava
В данной статье автор предоставит информацию о собственной библиотеке для обработки исключений (Exception) в функциональном стиле.
В Java начиная с версии 8 появились новые возможности в виде функциональных интерфейсов и потоков (Stream API). Эти возможности позволяют писать код в новом функциональном стиле без явных циклов, временных переменных, условий ветвления и проч. Я уверен что этот стиль программирования станет со временем основным для большинства Java программистов.
👉@BookJava
Telegraph
Обработка исключений в Java в функциональном стиле
Обработка исключений в Java в функциональном стиле В данной статье автор предоставит информацию о собственной библиотеке для обработки исключений (Exception) в функциональном стиле. Предпосылки В Java начиная с версии 8 появились новые возможности в виде…
👍7👎2🤔1
Если вы кодите на Java и хотите проверить свои знания, то с 5 по 20 августа вы можете поучаствовать в онлайн-чемпионате по Java-разработке. Чемпионат организован совместно Сколково и IT_ONE, призовой фонд составляет 740 000 рублей.
Регистрируйтесь до 10 августа: https://vk.cc/cfb6Ip
Денежные призы получат первые пять мест, топ-20 участникам подарим мерч, а самых талантливых ребят пригласим на работу в компанию IT_ONE.
Регистрируйтесь до 10 августа: https://vk.cc/cfb6Ip
Денежные призы получат первые пять мест, топ-20 участникам подарим мерч, а самых талантливых ребят пригласим на работу в компанию IT_ONE.
👍5
Как работают параллельные стримы?
Основная цель, ради которой в Java 8 был добавлен Stream API – удобство многопоточной обработки.
Обычный стрим будет выполняться параллельно после вызова промежуточной операции
Внутри реализации потока его сплиттератор оборачивается в
У удобства такого решения есть обратная сторона. Так как пул единый, нагрузка распределяется на всех пользователей параллельных стримов в программе. Если в одном потоке выполняются долгие блокирующие операции, это может ударить по производительности в совершенно не связанном с ним другом потоке.
Если всё же требуется использовать отдельный пул потоков, сам стрим выполняется как задача этого отдельного пула. Подробнее в статье.
#Классы #Многопоточность
👉@BookJava
Основная цель, ради которой в Java 8 был добавлен Stream API – удобство многопоточной обработки.
Обычный стрим будет выполняться параллельно после вызова промежуточной операции
parallel()
. Некоторые стримы создаются уже многопоточными, например результат вызова Collection#parallelStream()
. Для распараллеливания используется единый общий ForkJoinPool. Внутри реализации потока его сплиттератор оборачивается в
AbstractTask
, который и отправляется на выполнение в пул. AbstractTask
при выполнении считывает estimateSize
сплиттератора и текущую степень параллелизма пула. На основе этих данных он принимает решение, распараллелить ли сплиттератор на два методом trySplit()
.У удобства такого решения есть обратная сторона. Так как пул единый, нагрузка распределяется на всех пользователей параллельных стримов в программе. Если в одном потоке выполняются долгие блокирующие операции, это может ударить по производительности в совершенно не связанном с ним другом потоке.
Если всё же требуется использовать отдельный пул потоков, сам стрим выполняется как задача этого отдельного пула. Подробнее в статье.
#Классы #Многопоточность
👉@BookJava
👍8
Зачем добавили ArrayList, если уже был Vector?
• Методы класса
• По умолчанию,
👉@BookJava
• Методы класса
Vector
синхронизированы, а ArrayList
- нет;• По умолчанию,
Vector
удваивает свой размер, когда заканчивается выделенная под элементы память. ArrayList
же увеличивает свой размер только на половину.Vector
это устаревший класс и его использование не рекомендовано. 👉@BookJava
👍4💩3
This media is not supported in your browser
VIEW IN TELEGRAM
Lombok — библиотека, генерирующая за вас бойлерплейт (шаблонный) код. Даёт возможность создавать классы ускоренно, так как не надо вручную прописывать, например, геттеры и сеттеры, всё делается с помощью аннотаций.
Вы можете создавать неизменяемые классы вместе с типовыми методами и геттерами к ним — с помощью
👉@BookJava
Вы можете создавать неизменяемые классы вместе с типовыми методами и геттерами к ним — с помощью
@Vаlue
. Все поля класса будут финализированы и сделаны приватными.👉@BookJava
👍10👎2
Как стать бэкенд-разработчиком, учитывая, что эта специальность является одной из самых востребованных, но требует достаточно серьезной подготовки, знаний и навыков?
Сейчас наблюдается критический дефицит программистов разного уровня, особенно специалистов с опытом . Только на hh_ru открыто более 47 000 вакансий. И они могут висеть месяцами!
Бэкэнд-разработчик отвечает за все внутренние процессы приложений и сайтов. Это самые настоящие бойцы невидимого фронта. Им подвластны сервера, базы данных, основная логика программных приложений .
Обучение на бэкенд-разработчика проходит в несколько этапов - от введения в Java до получения практических навыков и освоения полноценной профессии.
Почему Java? Это один из самых гибких, универсальных, простых и надежных языков в программировании. Кроссплатформенность Java дает возможность запускать написанный код на любом устройстве.
25 июля стартует бесплатный курс «Введение в Java» от IT-Академии «Точка Входа», на котором вы можете оценить свои способности и принять решение о начале серьезного обучения. 4 недели и 10 практических заданий помогут понять, насколько вам интересно пополнить ряды бэкендеров.
Регистрируйтесь на сайте: https://bit.ly/3oepzPt
Сейчас наблюдается критический дефицит программистов разного уровня, особенно специалистов с опытом . Только на hh_ru открыто более 47 000 вакансий. И они могут висеть месяцами!
Бэкэнд-разработчик отвечает за все внутренние процессы приложений и сайтов. Это самые настоящие бойцы невидимого фронта. Им подвластны сервера, базы данных, основная логика программных приложений .
Обучение на бэкенд-разработчика проходит в несколько этапов - от введения в Java до получения практических навыков и освоения полноценной профессии.
Почему Java? Это один из самых гибких, универсальных, простых и надежных языков в программировании. Кроссплатформенность Java дает возможность запускать написанный код на любом устройстве.
25 июля стартует бесплатный курс «Введение в Java» от IT-Академии «Точка Входа», на котором вы можете оценить свои способности и принять решение о начале серьезного обучения. 4 недели и 10 практических заданий помогут понять, насколько вам интересно пополнить ряды бэкендеров.
Регистрируйтесь на сайте: https://bit.ly/3oepzPt
👍5
Как создать HashMap сразу с элементами?
Проблема с созданием
Самый примитивный, многословный, но простой способ – добавить элементы сразу после создания. Для мапы-поля класса это можно сделать в конструкторе или блоке инициализации.
Идиома double brace initialization. Компактная запись, которая расшифровывается компилятором как создание анонимного класса-наследника от
Для специальных случаев, пустой и одноэлементной неизменяемых мап, в классе
Удобно создавать
В Java 9 наконец появились фабричные метод
До Java 9 подобное было реализовано во многих популярных библиотеках, например
#Коллекции
👉@BookJava
Проблема с созданием
Map
в том, что в отличие от других коллекций инициализация должна принять параметрами набор пар неопределенного размера. Поэтому varargs здесь не подходит.Самый примитивный, многословный, но простой способ – добавить элементы сразу после создания. Для мапы-поля класса это можно сделать в конструкторе или блоке инициализации.
Map<String, String> map = new HashMap<>();
{
map.put("one", "first");
map.put("two", "second");
}
Идиома double brace initialization. Компактная запись, которая расшифровывается компилятором как создание анонимного класса-наследника от
HashMap
, с добавлением элементов в блоке статической инициализации. Создание нового класса приводит к дополнительным накладным расходам, так делать не рекомендуется.
new HashMap<String, String>() {{
put("one", "first");
put("two", "second");
}};
Для специальных случаев, пустой и одноэлементной неизменяемых мап, в классе
Collections
есть соответствующие фабричные методы emptyMap()
и singletonMap(key, value)
.Удобно создавать
HashMap
из стрима. Коллектор Collectors.toMap(keyMapper, valueMapper)
с помощью мапперов превратит объекты потока в ключи и значения.В Java 9 наконец появились фабричные метод
Map.of()
, перегруженный для разного количества пар параметров, и Map.ofEntries()
с varargs-аргументом.До Java 9 подобное было реализовано во многих популярных библиотеках, например
ImmutableMap.of
в Guava и MapUtils.putAll()
в Apache Commons.#Коллекции
👉@BookJava
👍11👎1🔥1
Как инстанцировать экземпляр generic типа?
Внутри класса
Причина этих ограничений кроется в стирании типов. Дженерик параметры правильно воспринимать скорее как ограничения типов, чем как конкретные типы. Эти ограничения действуют для более строгих проверок на этапе компиляции. В рантайме же информация о конкретных переданных типах-параметрах стирается. А все эти операторы выполняются именно в рантайме.
Стандартный простой способ действия здесь – кроме значения типа T передавать еще и объект-дескриптор для этого типа, экземпляр класса
Но существует один хак, способный справиться со стиранием типов. Тип-параметр все-таки остается в одном месте в рантайме. Метод метакласса наследника определившего конкретный тип
#Классы #Дженерики
👉@BookJava
Внутри класса
class Foo<T>
на generic параметре T
невозможно выполнить никакой оператор: нельзя взять его .class
, нельзя применить его в instanceof
. Также и вызов на нем оператора new приведет к ошибке.Причина этих ограничений кроется в стирании типов. Дженерик параметры правильно воспринимать скорее как ограничения типов, чем как конкретные типы. Эти ограничения действуют для более строгих проверок на этапе компиляции. В рантайме же информация о конкретных переданных типах-параметрах стирается. А все эти операторы выполняются именно в рантайме.
Стандартный простой способ действия здесь – кроме значения типа T передавать еще и объект-дескриптор для этого типа, экземпляр класса
Class<T>
. Объект может быть создан из дескриптора рефлекшеном.Но существует один хак, способный справиться со стиранием типов. Тип-параметр все-таки остается в одном месте в рантайме. Метод метакласса наследника определившего конкретный тип
getGenericSuperclass()
возвращает класс, которым параметризован родитель. #Классы #Дженерики
👉@BookJava
👍10🔥1
Подборка каналов для 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
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
Telegram
1C программист
Cтатьи, курсы, советы, шаблоны кода 1С. По всем вопросам @evgenycarter
👍3