Библиотека джависта | Java, Spring, Maven, Hibernate
24.9K subscribers
1.86K photos
38 videos
42 files
2.64K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
forward():
☕️ Выполняется на стороне сервера;
☕️ Запрос перенаправляется на другой ресурс в пределах того же сервера;
☕️ Не зависит от протокола клиентского запроса, так как обеспечивается контейнером сервлетов;
☕️ Нельзя применять для внедрения сервлета в другой контекст;
☕️ Клиент не знает о фактически обрабатываемом ресурсе и URL в строке остается прежним;
☕️ Выполняется быстрее метода sendRedirect();
☕️ Определён в интерфейсе RequestDispatcher.

sendRedirect():
☕️ Выполняется на стороне клиента;
☕️ Клиенту возвращается ответ 302 (redirect) и запрос перенаправляется на другой сервер;
☕️ Может использоваться только с клиентами HTTP;
☕️ Разрешается применять для внедрения сервлета в другой контекст;
☕️ URL адрес изменяется на адрес нового ресурса;
☕️ Медленнее forward() т.к. требует создания нового запроса;
☕️ Определён в интерфейсе HttpServletResponse.
С нас полезные лекции и трудоустройство, с тебя – минимум год опыта коммерческой разработки на Java.

Как все проходит?
3 раза в неделю на протяжении двух месяцев тебя будут обучать Senior’ы и Teamlead’ы ведущих банков страны. Обучение можно совмещать с работой.

Чему будут учить?
На курсе будем изучать Core Java, промышленную разработку на Java, базы данных, Spring, Kafka, Kubernetes и Istio. Помимо этого еще будут практические занятия и домашние задания.

Что будет после учебы?
Трудоустройство в Цифровые привычки. Ты будешь работать над высоконагруженными,отказоустойчивыми проектами.
Открыта регистрация на оплачиваемую стажировку ВТБ IT Юниор. Приглашаются студенты 3–4-го курса и выпускники бакалавриата, специалитета или магистратуры 2018−2023 годов выпуска по математическим, техническим, естественнонаучным или IT-направлениям. Вас ждет семь направлений на выбор: системная аналитика, сопровождение IT-инфраструктуры, администрирование и поддержка баз данных, DevOps, бизнес-аналитика, тестирование, разработка.

Преимущества стажировки:
— Комфортные условия: конкурентная заработная плата и все корпоративные преимущества, включая ДМС и социальный пакет.
— Ментор, с которым вы определите персональные цели и возможные векторы развития в IT-отрасли.
— Мастер-классы от главных IT-экспертов банка, участие в технологических завтраках, серии митапов для развития профессиональных компетенций, вебинары для роста личной эффективности, а также тренинг по банковскому бизнесу.

Регистрируйтесь до 1 июля включительно: https://clck.ru/VbVxE
Механизм сборки мусора - это процесс освобождения места в куче, для возможности добавления новых объектов.

Объекты создаются посредством оператора new, тем самым присваивая объекту ссылку. Для окончания работы с объектом достаточно просто перестать на него ссылаться, например присвоив переменной ссылку на другой объект или значение null; прекратить выполнение метода, чтобы его локальные переменные завершили свое существование естественным образом. Объекты, ссылки на которые отсутствуют, принято называть мусором (garbage), который будет удален.

Виртуальная машина Java, применяя механизм сборки мусора, гарантирует, что любой объект, обладающий ссылками, остается в памяти — все объекты, которые недостижимы из исполняемого кода, ввиду отсутствия ссылок на них, удаляются с высвобождением отведенной для них памяти. Точнее говоря, объект не попадает в сферу действия процесса сборки мусора, если он достижим посредством цепочки ссылок, начиная с корневой (GC Root) ссылки, т.е. ссылки, непосредственно существующей в выполняемом коде.

Память освобождается сборщиком мусора по его собственному «усмотрению». Программа может успешно завершить работу, не исчерпав ресурсов свободной памяти или даже не приблизившись к этой черте и поэтому ей так и не потребуются «услуги» сборщика мусора.

Мусор собирается системой автоматически, без вмешательства пользователя или программиста, но это не значит, что этот процесс не требует внимания вовсе. Необходимость создания и удаления большого количества объектов существенным образом сказывается на производительности приложений и если быстродействие программы является важным фактором, следует тщательно обдумывать решения, связанные с созданием объектов, — это, в свою очередь, уменьшит и объем мусора, подлежащего утилизации.
Клевые новости для всех, кто хочет стартануть в Automation — ребята из школы автоматизации QA.GURU проводят бесплатное вводное занятие 23-го июня в 20:00 МСК

Почему надо сходить:

— Занятие проведут преподаватели школы практики с многолетним опытом:
Станислав Васенков (@qa_automation), Артём Ерошенко (Allure), Алексей Виноградов (Selenide), Роман Орлов (Selenoid), Дмитрий Тучс (Propeller Ads), Евгений Данилов (rft.ru)

Разработаем простой автотест на поиск в google.com;

— Расскажем о рынке QA. Кто, кому, за что и сколько платит?

— Покажем боевой готовый проект и расскажем какие инструменты используются в нём, совместно с преподавателями школы;

— Бонусная часть – пока в секрете;

— Орг. часть: цели обучения, программа, инфраструктура;

— Дадим первое домашнее задание. Вы установите рабочую среду, запустите первый автотест.

Занятие бесплатное — для регистрации заполните форму на сайте qa.guru или вступайте в чат @qa_guru_chat — перед началом занятия ребята опубликуют ссылку там.
Класс SequenceInputStream позволяет сливать вместе несколько экземпляров класса InputStream. Конструктор принимает в качестве аргумента либо пару объектов класса InputStream, либо интерфейс Enumeration.

Во время работы класс выполняет запросы на чтение из первого объекта класса 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, Spring, Maven, Hibernate pinned «​25 и 26 июня состоится jLove - большая международная конференция для Java-разработчиков! https://jlove.konfy.care/ Здесь вы сможете: 🧐 Узнать самые актуальные новости от ведущих экспертов из мира Java 🔥 Поучаствовать в жарких дискуссиях с экспертами во время…»
Как применить регулярное выражение в Java?

Регулярные выражения – мощный механизм работы со строками. Здесь мы не будем говорить о регулярных выражениях в целом, поговорим об их использовании в Java. Это становится возможно благодаря пакету java.util.regex стандартной библиотеки.

Работа с регулярными выражениями в Java начинается с класса Pattern. Это представление самого выражения, без привязки к целевому тексту. Создать его можно компиляцией строки, с помощью фабричного метода Pattern.compile(). Паттерн иммутабельный и потокобезопасный.

Matcher – регулярное выражение, примененное к конкретному тексту. Пораждается вызовом метода Pattern.matches(). Одним паттерном можно порождать несколько разных матчеров. В отличие от паттерна, матчер мутирует. Он не безопасен для многопоточной среды. Основные операции регулярных выражений – перебор совпадений, доступ к группам, замена – реализованы именно в этом классе.

Работа с экземпляром Matcher похожа на работу с итератором. Результат метода matches() просто скажет, соответствует ли строка шаблону. Но после его вызова матчер поменяет состояние. Теперь, из него можно получить группы, позицию совпадения в тексте, а также произвести замену.

В объекте шаблона Pattern реализованы несколько методов-сокращений, чтобы не использовать Matcher явно. Например, просто проверить строку на соответствие выражению можно одним методом Pattern.matches().
Хочешь построить карьеру в разработке?

Тогда приглашаем пройти практику в Летней ИТ-школе КРОК по направлению “Разработка ПО”! Это двухнедельный бесплатный интенсив с профильными лекциями и практическими кейсами от экспертов-разработчиков КРОК.

За две недели ты научишься:

🚀Проектировать и кодировать приложения c применением Java фреймворков, в том числе, с применением подхода Domain Driven Design (DDD)
🚀Повышать качество своего кода с помощью практик Test Driven Development (TDD), Refactoring, Code review
🚀Упрощать разработку и развертывание с использованием инфраструктуры и практик Continuous Integration и Continuous Delivery (CI/CD)

Что ещё нужно знать про Летнюю ИТ-школу?

🚀Заниматься ты будешь в современном офисе КРОК в Москве
🚀Летнюю ИТ-школу КРОК можно оформить как практику, получится двойной профит
🚀После Летней школы ты можешь получить приглашение на работу в КРОК, но для этого нужно приложить усилия (ну а как иначе?)

Если ты из Краснодара, Иркутска, Воронежа, Нижнего Новгорода, Челябинска, Санкт-Петербурга, то в случае успешного прохождения отбора на направление «Разработка ПО» тебе будет оплачена дорога и проживание в Москве с 12 июля — 23 июля.

Подробности программы и регистрация участников: https://schoolcroc.ru/
#вопросы_с_собеседований
Даны 3 потока: Т1, Т2 и Т3. Как реализовать выполнение в последовательности Т1, Т2, Т3?
Такой последовательности выполнения можно достичь многими способами, например, просто воспользоваться методом join(), чтобы запустить поток в момент, когда другой уже закончит своё выполнение. Для реализации заданной последовательности нужно запустить последний поток первым, и затем вызывать метод join() в обратном порядке, то есть Т3 вызывает Т2.join, а Т2 вызывает Т1.join, таким образом Т1 закончит выполнение первым, а Т3 последним.
#вопросы_с_собеседований
В чем отличие класса PrintWriter от PrintStream?
Прежде всего, в классе PrintWriter применен усовершенствованный способ работы с символами Unicode и другой механизм буферизации вывода: в классе PrintStream буфер вывода сбрасывался всякий раз, когда вызывался метод print() или println(), а при использовании класса PrintWriter существует возможность отказаться от автоматического сброса буферов, выполняя его явным образом при помощи метода flush().

Кроме того, методы класса PrintWriter никогда не создают исключений. Для проверки ошибок необходимо явно вызвать метод checkError().
Хочешь освоить востребованную профессию Java-разработчика и работать в топовых IT-компаниях Москвы? Расходы во время обучение берет на себя Java Mentor, а оплата только после твоего трудоустройства программистом ☕️⚡️

🙋‍♂️👉 Подать заявку: 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 проверенных программ. Каждая глава начинается с краткого введения в тему, лучших советов и тактик, а также обзора наиболее важных библиотечных методов. Далее следует большой список задач по теме.

Скачать книгу