Клевые новости для всех, кто хочет стартануть в Automation — ребята из школы автоматизации QA.GURU проводят бесплатное вводное занятие 23-го июня в 20:00 МСК
Почему надо сходить:
— Занятие проведут преподаватели школы практики с многолетним опытом:
Станислав Васенков (@qa_automation), Артём Ерошенко (Allure), Алексей Виноградов (Selenide), Роман Орлов (Selenoid), Дмитрий Тучс (Propeller Ads), Евгений Данилов (rft.ru)
Разработаем простой автотест на поиск в google.com;
— Расскажем о рынке QA. Кто, кому, за что и сколько платит?
— Покажем боевой готовый проект и расскажем какие инструменты используются в нём, совместно с преподавателями школы;
— Бонусная часть – пока в секрете;
— Орг. часть: цели обучения, программа, инфраструктура;
— Дадим первое домашнее задание. Вы установите рабочую среду, запустите первый автотест.
Занятие бесплатное — для регистрации заполните форму на сайте qa.guru или вступайте в чат @qa_guru_chat — перед началом занятия ребята опубликуют ссылку там.
Почему надо сходить:
— Занятие проведут преподаватели школы практики с многолетним опытом:
Станислав Васенков (@qa_automation), Артём Ерошенко (Allure), Алексей Виноградов (Selenide), Роман Орлов (Selenoid), Дмитрий Тучс (Propeller Ads), Евгений Данилов (rft.ru)
Разработаем простой автотест на поиск в google.com;
— Расскажем о рынке QA. Кто, кому, за что и сколько платит?
— Покажем боевой готовый проект и расскажем какие инструменты используются в нём, совместно с преподавателями школы;
— Бонусная часть – пока в секрете;
— Орг. часть: цели обучения, программа, инфраструктура;
— Дадим первое домашнее задание. Вы установите рабочую среду, запустите первый автотест.
Занятие бесплатное — для регистрации заполните форму на сайте qa.guru или вступайте в чат @qa_guru_chat — перед началом занятия ребята опубликуют ссылку там.
#вопросы_с_собеседований
Для чего используется SequenceInputStream?
Для чего используется SequenceInputStream?
Класс SequenceInputStream позволяет сливать вместе несколько экземпляров класса InputStream. Конструктор принимает в качестве аргумента либо пару объектов класса InputStream, либо интерфейс Enumeration.
Во время работы класс выполняет запросы на чтение из первого объекта класса InputStream и до конца, а затем переключается на второй. При использовании интерфейса работа продолжится по всем объектам класса InputStream. По достижении конца связанный с ним поток закрывается. Закрытие потока, созданного объектом класса SequenceInputStream, приводит к закрытию всех открытых потоков.
Во время работы класс выполняет запросы на чтение из первого объекта класса InputStream и до конца, а затем переключается на второй. При использовании интерфейса работа продолжится по всем объектам класса InputStream. По достижении конца связанный с ним поток закрывается. Закрытие потока, созданного объектом класса SequenceInputStream, приводит к закрытию всех открытых потоков.
25 и 26 июня состоится jLove - большая международная конференция для Java-разработчиков! https://jlove.konfy.care/
Здесь вы сможете:
🧐 Узнать самые актуальные новости от ведущих экспертов из мира Java
🔥 Поучаствовать в жарких дискуссиях с экспертами во время Q&A сессий, которые пройдут на платформе SpatialChat. Уверяем, вы почувствуете себя как на старой доброй оффлайн конференции
🤓 Пообщаться с единомышленниками из Java-коммьюнити со всего мира в нашем чате в Discord
👷♂️ Найти работу своей мечты с помощью веб-приложения Recorem. Здесь самые горячие вакансии, и ответ на свою заявку вы получите в течение 72 часов!
🤗 Поучаствовать в лотерее и выиграть один из потрясающих призов от наших спонсоров!
Все это, и даже больше, вы сможете получить с 50% скидкой по промокоду PROGLIB https://jlove.konfy.care/#tickets ❤️
Следите за новостями конференции https://twitter.com/jloveconf
P.S Мы ищем ВОЛОНТЕРОВ!
вы можете стать одним из наших волонтеров, увидеть всю организацию изнутри, пообщаться со спикерами и получить СВАГ+великолепную аватарку, за подробностями, пишите на [email protected]
Здесь вы сможете:
🧐 Узнать самые актуальные новости от ведущих экспертов из мира Java
🔥 Поучаствовать в жарких дискуссиях с экспертами во время Q&A сессий, которые пройдут на платформе SpatialChat. Уверяем, вы почувствуете себя как на старой доброй оффлайн конференции
🤓 Пообщаться с единомышленниками из Java-коммьюнити со всего мира в нашем чате в Discord
👷♂️ Найти работу своей мечты с помощью веб-приложения Recorem. Здесь самые горячие вакансии, и ответ на свою заявку вы получите в течение 72 часов!
🤗 Поучаствовать в лотерее и выиграть один из потрясающих призов от наших спонсоров!
Все это, и даже больше, вы сможете получить с 50% скидкой по промокоду PROGLIB https://jlove.konfy.care/#tickets ❤️
Следите за новостями конференции https://twitter.com/jloveconf
P.S Мы ищем ВОЛОНТЕРОВ!
вы можете стать одним из наших волонтеров, увидеть всю организацию изнутри, пообщаться со спикерами и получить СВАГ+великолепную аватарку, за подробностями, пишите на [email protected]
Библиотека джависта | Java, Spring, Maven, Hibernate pinned «25 и 26 июня состоится jLove - большая международная конференция для Java-разработчиков! https://jlove.konfy.care/ Здесь вы сможете: 🧐 Узнать самые актуальные новости от ведущих экспертов из мира Java 🔥 Поучаствовать в жарких дискуссиях с экспертами во время…»
Как применить регулярное выражение в Java?
Регулярные выражения – мощный механизм работы со строками. Здесь мы не будем говорить о регулярных выражениях в целом, поговорим об их использовании в Java. Это становится возможно благодаря пакету
Работа с регулярными выражениями в Java начинается с класса Pattern. Это представление самого выражения, без привязки к целевому тексту. Создать его можно компиляцией строки, с помощью фабричного метода
Matcher – регулярное выражение, примененное к конкретному тексту. Пораждается вызовом метода
Работа с экземпляром Matcher похожа на работу с итератором. Результат метода
В объекте шаблона
Регулярные выражения – мощный механизм работы со строками. Здесь мы не будем говорить о регулярных выражениях в целом, поговорим об их использовании в Java. Это становится возможно благодаря пакету
java.util.regex
стандартной библиотеки.Работа с регулярными выражениями в Java начинается с класса Pattern. Это представление самого выражения, без привязки к целевому тексту. Создать его можно компиляцией строки, с помощью фабричного метода
Pattern.compile()
. Паттерн иммутабельный и потокобезопасный.Matcher – регулярное выражение, примененное к конкретному тексту. Пораждается вызовом метода
Pattern.matches()
. Одним паттерном можно порождать несколько разных матчеров. В отличие от паттерна, матчер мутирует. Он не безопасен для многопоточной среды. Основные операции регулярных выражений – перебор совпадений, доступ к группам, замена – реализованы именно в этом классе.Работа с экземпляром Matcher похожа на работу с итератором. Результат метода
matches()
просто скажет, соответствует ли строка шаблону. Но после его вызова матчер поменяет состояние. Теперь, из него можно получить группы, позицию совпадения в тексте, а также произвести замену. В объекте шаблона
Pattern
реализованы несколько методов-сокращений, чтобы не использовать Matcher
явно. Например, просто проверить строку на соответствие выражению можно одним методом Pattern.matches()
.Wikipedia
Регулярные выражения
формальный язык
Хочешь построить карьеру в разработке?
Тогда приглашаем пройти практику в Летней ИТ-школе КРОК по направлению “Разработка ПО”! Это двухнедельный бесплатный интенсив с профильными лекциями и практическими кейсами от экспертов-разработчиков КРОК.
За две недели ты научишься:
🚀Проектировать и кодировать приложения c применением Java фреймворков, в том числе, с применением подхода Domain Driven Design (DDD)
🚀Повышать качество своего кода с помощью практик Test Driven Development (TDD), Refactoring, Code review
🚀Упрощать разработку и развертывание с использованием инфраструктуры и практик Continuous Integration и Continuous Delivery (CI/CD)
Что ещё нужно знать про Летнюю ИТ-школу?
🚀Заниматься ты будешь в современном офисе КРОК в Москве
🚀Летнюю ИТ-школу КРОК можно оформить как практику, получится двойной профит
🚀После Летней школы ты можешь получить приглашение на работу в КРОК, но для этого нужно приложить усилия (ну а как иначе?)
Если ты из Краснодара, Иркутска, Воронежа, Нижнего Новгорода, Челябинска, Санкт-Петербурга, то в случае успешного прохождения отбора на направление «Разработка ПО» тебе будет оплачена дорога и проживание в Москве с 12 июля — 23 июля.
Подробности программы и регистрация участников: https://schoolcroc.ru/
Тогда приглашаем пройти практику в Летней ИТ-школе КРОК по направлению “Разработка ПО”! Это двухнедельный бесплатный интенсив с профильными лекциями и практическими кейсами от экспертов-разработчиков КРОК.
За две недели ты научишься:
🚀Проектировать и кодировать приложения c применением Java фреймворков, в том числе, с применением подхода Domain Driven Design (DDD)
🚀Повышать качество своего кода с помощью практик Test Driven Development (TDD), Refactoring, Code review
🚀Упрощать разработку и развертывание с использованием инфраструктуры и практик Continuous Integration и Continuous Delivery (CI/CD)
Что ещё нужно знать про Летнюю ИТ-школу?
🚀Заниматься ты будешь в современном офисе КРОК в Москве
🚀Летнюю ИТ-школу КРОК можно оформить как практику, получится двойной профит
🚀После Летней школы ты можешь получить приглашение на работу в КРОК, но для этого нужно приложить усилия (ну а как иначе?)
Если ты из Краснодара, Иркутска, Воронежа, Нижнего Новгорода, Челябинска, Санкт-Петербурга, то в случае успешного прохождения отбора на направление «Разработка ПО» тебе будет оплачена дорога и проживание в Москве с 12 июля — 23 июля.
Подробности программы и регистрация участников: https://schoolcroc.ru/
Ребята, мы тут решили провести микроопрос. Какую машину вы бы выбрали до 2млн в качестве первого авто?
Anonymous Poll
24%
Volkswagen Tiguan
21%
Toyota Camry
8%
Nissan X-Trail
5%
Hyundai Sonata
7%
Kia Optima
2%
Kia Seltos
9%
Kia K5
4%
Mitsubishi ASX
9%
Mitsubishi Outlander
34%
Нет машины, интересно что там по результатам
#вопросы_с_собеседований
Даны 3 потока: Т1, Т2 и Т3. Как реализовать выполнение в последовательности Т1, Т2, Т3?
Даны 3 потока: Т1, Т2 и Т3. Как реализовать выполнение в последовательности Т1, Т2, Т3?
Такой последовательности выполнения можно достичь многими способами, например, просто воспользоваться методом join(), чтобы запустить поток в момент, когда другой уже закончит своё выполнение. Для реализации заданной последовательности нужно запустить последний поток первым, и затем вызывать метод join() в обратном порядке, то есть Т3 вызывает Т2.join, а Т2 вызывает Т1.join, таким образом Т1 закончит выполнение первым, а Т3 последним.
#вопросы_с_собеседований
В чем отличие класса PrintWriter от PrintStream?
В чем отличие класса PrintWriter от PrintStream?
Прежде всего, в классе PrintWriter применен усовершенствованный способ работы с символами Unicode и другой механизм буферизации вывода: в классе PrintStream буфер вывода сбрасывался всякий раз, когда вызывался метод print() или println(), а при использовании класса PrintWriter существует возможность отказаться от автоматического сброса буферов, выполняя его явным образом при помощи метода flush().
Кроме того, методы класса PrintWriter никогда не создают исключений. Для проверки ошибок необходимо явно вызвать метод checkError().
Кроме того, методы класса PrintWriter никогда не создают исключений. Для проверки ошибок необходимо явно вызвать метод checkError().
Хочешь освоить востребованную профессию Java-разработчика и работать в топовых IT-компаниях Москвы? Расходы во время обучение берет на себя Java Mentor, а оплата только после твоего трудоустройства программистом ☕️⚡️
🙋♂️👉 Подать заявку: https://clck.ru/Vcb8j
• Ты освоишь востребованные технологии, а опытные наставники будут контролировать усвоение материала.
• Ты получишь опыт в бизнес-проекте необходимый для трудоустройства.
• A HR-специалисты помогут составить резюме и подготовят тебя к прохождению трудных собеседований.
• Поддержка от мощного сообщество единомышленников.
Каждый выпускник получает от трех предложений о работе. Поэтому работодателя выберешь самостоятельно после успешных собеседований.
🙋♂️👉 Подать заявку: https://clck.ru/Vcb8j
• Ты освоишь востребованные технологии, а опытные наставники будут контролировать усвоение материала.
• Ты получишь опыт в бизнес-проекте необходимый для трудоустройства.
• A HR-специалисты помогут составить резюме и подготовят тебя к прохождению трудных собеседований.
• Поддержка от мощного сообщество единомышленников.
Каждый выпускник получает от трех предложений о работе. Поэтому работодателя выберешь самостоятельно после успешных собеседований.
Elements of Programming Interviews in Java: The Insiders' Guide (2015)
Авторы: Adnan Aziz, Tsung-Hsien Lee, Amit Prakash
Количество страниц: 475
Книга поможет вам пройти собеседование и получить работу Java-разработчика. В ней представлено более 250 задач с подробными решениями, они являются типичными заданиями из собеседований в разные компании. Также в книгу включено 200 иллюстраций и 300 проверенных программ. Каждая глава начинается с краткого введения в тему, лучших советов и тактик, а также обзора наиболее важных библиотечных методов. Далее следует большой список задач по теме.
Скачать книгу
Авторы: Adnan Aziz, Tsung-Hsien Lee, Amit Prakash
Количество страниц: 475
Книга поможет вам пройти собеседование и получить работу Java-разработчика. В ней представлено более 250 задач с подробными решениями, они являются типичными заданиями из собеседований в разные компании. Также в книгу включено 200 иллюстраций и 300 проверенных программ. Каждая глава начинается с краткого введения в тему, лучших советов и тактик, а также обзора наиболее важных библиотечных методов. Далее следует большой список задач по теме.
Скачать книгу
Telegram
Книги для программистов (reserved)
Elements of Programming Interviews in Java: The Insiders' Guide (2015)
Авторы: Adnan Aziz, Tsung-Hsien Lee, Amit Prakash
Авторы: Adnan Aziz, Tsung-Hsien Lee, Amit Prakash
Чем синхронный сервер отличается от асинхронного?
Вопрос может быть сформулирован как «сравните Jetty и Netty», или «зачем нужен Spring WebFlux».
Большинство современных Java web-серверов синхронные. Это значит, что для каждого пришедшего HTTP-запроса выделяется отдельный поток. Даже если такой поток переиспользуется с помощью пула, он остается занятым до конца обработка запроса.
Таким образом, если каждый запрос выполняется одну секунду, то при всего лишь 2000 запросов в секунду сервер расходует 2000 потоков. Потоки в ОС – ограниченный ресурс, и не важно как сконфигурирован ваш сервер – в какой-то момент производительность резко просядет.
Альтернативное решение – асинхронные сервера. В них для потоков обработки HTTP-запросов используется work stealing. В широком смысле, вызовы асинхронных функций не блокируют выполнение, а их результат вместо return value возвращается параметром коллбэка. В Java этот результат зачастую возвращается в виде объекта Future.
Чтобы вся обработка запроса стала действительно асинхронной, необходимо также избавиться от блокирующих операций. Иначе преимущество подхода с work stealing выродится в простой пул потоков. Блокирующая работа с файлами и сетью должна быть заменена на NIO, а для БД должен быть использован асинхронный драйвер.
Вопрос может быть сформулирован как «сравните Jetty и Netty», или «зачем нужен Spring WebFlux».
Большинство современных Java web-серверов синхронные. Это значит, что для каждого пришедшего HTTP-запроса выделяется отдельный поток. Даже если такой поток переиспользуется с помощью пула, он остается занятым до конца обработка запроса.
Таким образом, если каждый запрос выполняется одну секунду, то при всего лишь 2000 запросов в секунду сервер расходует 2000 потоков. Потоки в ОС – ограниченный ресурс, и не важно как сконфигурирован ваш сервер – в какой-то момент производительность резко просядет.
Альтернативное решение – асинхронные сервера. В них для потоков обработки HTTP-запросов используется work stealing. В широком смысле, вызовы асинхронных функций не блокируют выполнение, а их результат вместо return value возвращается параметром коллбэка. В Java этот результат зачастую возвращается в виде объекта Future.
Чтобы вся обработка запроса стала действительно асинхронной, необходимо также избавиться от блокирующих операций. Иначе преимущество подхода с work stealing выродится в простой пул потоков. Блокирующая работа с файлами и сетью должна быть заменена на NIO, а для БД должен быть использован асинхронный драйвер.
Как стать профессиональным хакером и тестировать системы и продукты компаний на прочность?
Команда практикующих пентестеров HackerU разработала программу обучения, где 80% практики и 100% поддержки от менторов обеспечат старт в профессии «Специалист по тестированию на проникновение».
По окончанию курса вас ждёт: получение диплома о проф. переподготовке, 2500+ открытых вакансий и проектов по кибербезопасности, карьерная поддержка от HackerU в лице экспертов и HR, а также доход уже на старте от 80к в месяц!
Хотите начать прямо сейчас? Мы ждём всех на бесплатной консультации с экспертом-пентестером, в которую входит:
— разбор roadmap по профессиям в ИБ
— первые задачи в формате киберсоревнований CTF
— тестирование, определяющее точку вашего старта
— и ответы на ваши вопросы от эксперта
Пройдите бесплатную консультацию с экспертом и зафиксируйте стоимость курса со скидкой в 30%!
Регистрируйтесь на консультацию по ссылке: https://is.gd/8Ybh2u
Команда практикующих пентестеров HackerU разработала программу обучения, где 80% практики и 100% поддержки от менторов обеспечат старт в профессии «Специалист по тестированию на проникновение».
По окончанию курса вас ждёт: получение диплома о проф. переподготовке, 2500+ открытых вакансий и проектов по кибербезопасности, карьерная поддержка от HackerU в лице экспертов и HR, а также доход уже на старте от 80к в месяц!
Хотите начать прямо сейчас? Мы ждём всех на бесплатной консультации с экспертом-пентестером, в которую входит:
— разбор roadmap по профессиям в ИБ
— первые задачи в формате киберсоревнований CTF
— тестирование, определяющее точку вашего старта
— и ответы на ваши вопросы от эксперта
Пройдите бесплатную консультацию с экспертом и зафиксируйте стоимость курса со скидкой в 30%!
Регистрируйтесь на консультацию по ссылке: https://is.gd/8Ybh2u
#вопросы_с_собеседований
Что такое ReadWriteLock?
Что такое ReadWriteLock?
ReadWriteLock – это интерфейс расширяющий базовый интерфейс Lock. Используется для улучшения производительности в многопоточном процессе и оперирует парой связанных блокировок (одна - для операций чтения, другая - для записи). Блокировка чтения может удерживаться одновременно несколькими читающими потоками, до тех пор пока не появится записывающий. Блокировка записи является эксклюзивной.
Существует реализующий интерфейс ReadWriteLock класс ReentrantReadWriteLock, который поддерживает до 65535 блокировок записи и до стольки же блокировок чтения.
Существует реализующий интерфейс ReadWriteLock класс ReentrantReadWriteLock, который поддерживает до 65535 блокировок записи и до стольки же блокировок чтения.
ReadWriteLock rwLock = new ReentrantReadWriteLock();
Lock rLock = rwLock.readLock();
Lock wLock = rwLock.writeLock();
wLock.lock();
try {
// exclusive write
} finally {
wLock.unlock();
}
rLock.lock();
try {
// shared reading
} finally {
rLock.unlock();
}
Forwarded from Java jobs — вакансии для java-разработчиков
#вакансия #Москва #Мск #удаленно #удаленнаяработа #Middle #Java
💻 Компания: Payneteasy
https://payneteasy.ru/
👨🏻💻👩🏻💻 Java разработчик (Middle/Regular)
🔺 Формат работы: Удаленная работа Full-time либо в нашем супер - офисе на Октябрьском поле
🔺 Занятость: полный рабочий день (гибкое начало дня, по 8 часов, 5/2)
💸 ЗП: от 180.000₽
📱 Контакты: HR Ксения: [email protected] или в личные сообщения ТГ @donnyjet (Отвечу на все вопросы!)
🔺Условия работы:
• Полная занятость;
• Высокопрофессиональный коллектив и много новых, инновационных и динамичных проектов
• Возможность профессионального и карьерного роста;
• Гибкий график работы
• Возможность работать из любой точки планеты или в комфортном офисе на Октябрьском поле
🔺Требования к кандидату:
• Опыт разработки на языке Java (от 3 лет);
• уверенное знание Java SE:
• Collections, I/O, Exceptions, GC, Generics
• Multithreading (synchronization, JMM, java.util.concurrent)
• Опыт работы Java EE:
• Servlet API
• JPA
• Знание и опыт использования Spring, NoSQL DB(Cassandra), SQL DB (MySQL, PostgreSQL)
• Также необходимо знать стандартные алгоритмы, структуры данных, шаблоны проектирования, и при этом иметь желание улучшать и оптимизировать существующий код.
• Web Basics (HTML, CSS, HTTP, JavaScript). В основном все проекты пишутся на ReactJs (SSR).
• Знание основ криптографии, желательно - опыт работы с Java Cryptography Extenstion;
• Большим плюсом будет опыт построения распределенных систем.
• Понимание принципов СI/CD;
• Linux (Debian/Ubuntu/CentOS);
• Docker, docker-compose, docker-cli;
🔺Задачи, которые предстоит решать:
• Разработка и сопровождение ПО в сфере приема и обработки платежей, веб-проектов;
• Модульное и интеграционное тестирование;
• Системная интеграция и развертывание приложений;
• Обеспечение технической поддержки второго и третьего уровня.
💻 Компания: Payneteasy
https://payneteasy.ru/
👨🏻💻👩🏻💻 Java разработчик (Middle/Regular)
🔺 Формат работы: Удаленная работа Full-time либо в нашем супер - офисе на Октябрьском поле
🔺 Занятость: полный рабочий день (гибкое начало дня, по 8 часов, 5/2)
💸 ЗП: от 180.000₽
📱 Контакты: HR Ксения: [email protected] или в личные сообщения ТГ @donnyjet (Отвечу на все вопросы!)
🔺Условия работы:
• Полная занятость;
• Высокопрофессиональный коллектив и много новых, инновационных и динамичных проектов
• Возможность профессионального и карьерного роста;
• Гибкий график работы
• Возможность работать из любой точки планеты или в комфортном офисе на Октябрьском поле
🔺Требования к кандидату:
• Опыт разработки на языке Java (от 3 лет);
• уверенное знание Java SE:
• Collections, I/O, Exceptions, GC, Generics
• Multithreading (synchronization, JMM, java.util.concurrent)
• Опыт работы Java EE:
• Servlet API
• JPA
• Знание и опыт использования Spring, NoSQL DB(Cassandra), SQL DB (MySQL, PostgreSQL)
• Также необходимо знать стандартные алгоритмы, структуры данных, шаблоны проектирования, и при этом иметь желание улучшать и оптимизировать существующий код.
• Web Basics (HTML, CSS, HTTP, JavaScript). В основном все проекты пишутся на ReactJs (SSR).
• Знание основ криптографии, желательно - опыт работы с Java Cryptography Extenstion;
• Большим плюсом будет опыт построения распределенных систем.
• Понимание принципов СI/CD;
• Linux (Debian/Ubuntu/CentOS);
• Docker, docker-compose, docker-cli;
🔺Задачи, которые предстоит решать:
• Разработка и сопровождение ПО в сфере приема и обработки платежей, веб-проектов;
• Модульное и интеграционное тестирование;
• Системная интеграция и развертывание приложений;
• Обеспечение технической поддержки второго и третьего уровня.
Какие существуют unchecked exception?
Наиболее часто встречающиеся:
Наиболее часто встречающиеся:
ArithmeticException
, ClassCastException
, ConcurrentModificationException
, IllegalArgumentException
, IllegalStateException
, IndexOutOfBoundsException
, NoSuchElementException
, NullPointerException
, UnsupportedOperationException
.