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

Библиотека джависта. Страница 43

20804 @javaproglib

Полезные материалы по всему, что может быть полезно разработчику на Java.

  • Библиотека джависта

    В каком случае требуется переопределять метод service()? Метод service() переопределяется, когда необходимо, чтобы сервлет обрабатывал все запросы (и GET, и POST) в одном методе. Когда контейнер сервлетов получает запрос клиента, то происходит вызов метода service(), который в зависимости от поступившего запроса вызывает или метод doGet() или метод doPost().
  • Библиотека джависта

    FAQ по var в Java

    Вопрос 1. Для чего используется var в Java? Локальные переменные — это "рабочие лошадки" Java. Они используются для хранения промежуточных результатов вычислений. И, в отличие от полей, объявляются,...

    Хабр
  • Библиотека джависта

    Сделайте первый шаг к освоению профессии Java-разработчика с нуля! Встречаемся 21 сентября в 20:00 на вебинаре «Реляционные базы данных для начинающих Java-разработчиков». 📁 За 1,5 часа на занятии мы: - Поговорим о месте реляционных баз данных в архитектуре информационных систем. - Рассмотрим основные компоненты и возможности РСУБД на примере PostgreSQL. - Сделаем обзор основных технологий по работе с реляционными БД в Java (JDBC, JPA/Hibernate, Spring Data и др.) 👉🏻 Зарегистрируйтесь, чтобы принять участие https://otus.pw/YQKw/ Используйте эту возможность протестировать онлайн-курс «Специализации Java-разработчик» от OTUS и познакомиться с преподавателем.
  • Реклама

  • Библиотека джависта

    #вопросы_с_собеседований Как контейнер сервлетов управляет жизненным циклом сервлета, когда и какие методы вызываются? Контейнер сервлетов управляет четырьмя фазами жизненного цикла сервлета: • Загрузка класса сервлета — когда контейнер получает запрос для сервлета, то происходит загрузка класса сервлета в память и вызов его конструктора без параметров. • Инициализация класса сервлета — после того как класс загружен контейнер инициализирует объект ServletConfig для этого сервлета и внедряет его через init() метод. Это и есть место где сервлет класс преобразуется из обычного класса в сервлет. • Обработка запросов — после инициализации сервлет готов к обработке запросов. Для каждого запроса клиента сервлет контейнер порождает новый поток и вызывает метод service() путем передачи ссылки на объекты ответа и запроса. • Удаление - когда контейнер останавливается или останавливается приложение, то контейнер сервлетов уничтожает классы сервлетов путем вызова destroy() метода. Таким образом, сервлет создаётся при первом обращении к нему и живёт на протяжении всего времени работы приложения (в отличии от объектов классов, которые уничтожаются сборщиком мусора после того, как они уже не используются) и весь жизненный цикл сервлета можно описать как последовательность вызова методов: • public void init(ServletConfig config) – используется контейнером для инициализации сервлета. Вызывается один раз за время жизни сервлета. • public void service(ServletRequest request, ServletResponse response) – вызывается для каждого запроса. Метод не может быть вызван раньше выполнения init() метода. • public void destroy() – вызывается для уничтожения сервлета (один раз за время жизни сервлета).
  • Библиотека джависта

    Введение в DbChange JUnit расширение Простой и декларативный способ выполнять SQL запросы в JUnit тестах. Читать статью
    Введение в DbChange JUnit расширение

    Простой и декларативный способ выполнять sql запросы в JUnit тестах. Введение Структура JUnit теста следует модели тестового сценария (test case): ПредУсловия (PreConditions) - это действия, которые переводят тестируемую систему в определённое состояние необходимое для выполнения тестового сценария. Тестовый сценарий (Test case) - это действия, которые меняют состояние тестируемой системы с целью сверить действительное поведение системы с ожидаемым. ПостУсловия (PostConditions) - это действия, которые переводят…

    Telegraph
  • Библиотека джависта

    Какова структура веб-проекта? src/main/java Исходники приложения/библиотеки src/main/resources Ресурсные файлы приложения/библиотеки src/main/filters Файлы сервлетных фильтров src/main/webapp Исходники веб-приложения src/test/java Исходники тестов src/test/resources Ресурсные файлы тестов src/test/filters Тесты сервлетных фильтров src/it Интеграционные тесты src/assembly Описание сборки src/site Сайт LICENSE.txt Лицензия проекта NOTICE.txt Замечания и определения библиотек зависимостей. README.txt Описание проекта
  • Библиотека джависта

    Чистый код — практический подход После нескольких докладов о чистом коде (Clean Code) я решил обобщить в статье самое важное по этой теме. Поскольку в Интернете и так много постов и информации об этом, то, я думаю, еще одна статья, просто рассказывающая о принципах чистого кода, не будет интересной. Поэтому я попытаюсь показать вам практический подход к чистому коду. Не вдаваясь в теорию, покажу, как я пишу Чистый Код. Читать статью
    Чистый код — практический подход

    После нескольких докладов о чистом коде (Clean Code) я решил обобщить в статье самое важное по этой теме. Поскольку в Интернете и так много постов и информации об этом, то, я думаю, еще одна статья, просто рассказывающая о принципах чистого кода, не будет интересной. Поэтому я попытаюсь показать вам практический подход к чистому коду. Не вдаваясь в теорию, покажу, как я пишу Чистый Код.

    Telegraph
  • Библиотека джависта

    Изучить основы Java за 14 дней? За 990 рублей? Это реально! Не важно, сколько вам лет, какое у вас образование и кем вы работаете сейчас. Для начала обучения не нужен опыт в разработке! Всего за 2 недели вы изучите основы языка под руководством опытного наставника, пройдете 62 урока с практикой в браузере и напишите свою первую программу. Торопитесь. Стартуем 20 сентября!
  • Библиотека джависта

    Как разбить строку на слова? StringTokenizer – специально предназначенный для этого класс стандартной библиотеки Java. Ему нужно задать разделители, по ним строка будет разделена на «токены». Это устаревший класс, он остается в библиотеке только для обратной совместимости. Вместо него рекомендуется использовать метод String.split(). Метод принимает строку с регулярным выражением, и опциональный лимит токенов. Реализация особенно оптимизирована для односимвольного разделителя. Но следует помнить, что даже если символ один, это всё ещё регулярное выражение – спецсимвол должен экранироваться. Другой подходящий метод – Pattern.split(). Он, наоборот, вызывается у регулярного выражения, а принимает целевую строку. В этот же метод делегируется и выполнение String.split(). Этот способ предпочтительнее, когда в регулярном выражении больше одного символа, а скомпилированный паттерн применяется повторно.
  • Библиотека джависта

    Связь цифрового и физического в нашем мире не только меняет восприятие продуктов и услуг. Она даёт потребителям новый нетривиальный опыт, уверен Сбер, поэтому расширяет штат сотрудников для развития своих сервисов в направлениях phygital и digital. Каждый Java-разработчик 24 сентября может принять участие в One Day Offer и получить интересную работу без многоэтапных собеседований и тестовых заданий! Над чем будете работать? • Совершенствовать фронтальные системы для обслуживания клиентов, приложение для менеджеров, BI-системы и системы удалённого видеоконсультирования. • Создавать Cloud-Native сервисы. • Работать с высоконагруженными системами. Отправляйте заявку на участие в One Day Offer от Сбера: http://sber.me/?p=Cm3Zs
  • Библиотека джависта

    🧑‍🎨 Искусство новых медиа: как стать цифровым художником? Давайте вместе разберемся с понятием «искусства новых медиа» (New media Art) и поймем, что нужно, чтобы стать цифровым художником. https://proglib.io/sh/IC6d9AuSen
  • Библиотека джависта

    Телеграм-канал https://t.me/ya_jobs с вакансиями от Яндекса. Новые предложения для разработчиков, инженеров, аналитиков и тимлидов. — Свежие вакансии каждый день — Описания задач, технологий и условий без воды — Лёгкий поиск по тегам — Прямые контакты рекрутеров и нанимающих руководителей Подписывайтесь: https://t.me/ya_jobs
  • Библиотека джависта

    #вопросы_с_собеседований Что такое «монитор» в Java? Монитор, мьютекс (mutex) – это средство обеспечения контроля за доступом к ресурсу. У монитора может быть максимум один владелец в каждый текущий момент времени. Следовательно, если кто-то использует ресурс и захватил монитор для обеспечения единоличного доступа, то другой, желающий использовать тот же ресурс, должен подождать освобождения монитора, захватить его и только потом начать использовать ресурс. Удобно представлять монитор как id захватившего его объекта. Если этот id равен 0 – ресурс свободен. Если не 0 – ресурс занят. Можно встать в очередь и ждать его освобождения. В Java у каждого экземпляра объекта есть монитор, который контролируется непосредственно виртуальной машиной. Используется он так: любой нестатический synchronized-метод при своем вызове прежде всего пытается захватить монитор того объекта, у которого он вызван (на который он может сослаться как на this). Если это удалось – метод исполняется. Если нет – поток останавливается и ждет, пока монитор будет отпущен.
  • Библиотека джависта

    Хакатон, ИТ-чемпионат или стажировка — с чего начать, если ты джун? Есть программа, которая совмещает в себе преимущества каждого из этих форматов. SberStart — возможность для начинающих java-разработчиков стать частью команды Сбера. В течение 3 месяцев вы проходите адаптацию, учитесь на реальных проектах банка, готовите групповой проект и проходите стажировку в нескольких командах Сбера. Лучшие получат шанс продолжить работу в Сбере и построить карьеру Java-разработчика. Кандидатам понадобятся базовые знания Java, опыт коммерческой или учебной разработки, владение Spring, Hibernate, СУБД и амбиции стать большим разработчиком. Зарплата с первого дня участия в программе. Подробности здесь: http://sber.me/?p=qNGn6
  • Библиотека джависта

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

  • Библиотека джависта

    Как в Java сделать утечку памяти? • Используя самописный класс стека, при выполнении операции pop() не присваивать предыдущей ссылке значение null. • Также можно неверно использовать HashMap вместо WeakHashMap для кэширования чего-нибудь большого, например картинок ваших товаров, пользователей и.т.д в. Т.к ссылки на ключи сильные (strong references), значения по этим ключам будут висеть в хипе до следующей перезагрузки jvm процесса или удаления ключа из мапы и обнуления ссылки на него. Вообще, кэширование — тема для отдельного разговора • Также статья (но староватая)
  • Библиотека джависта

    Реактивное программирование на Java — что это и кому нужно? Выясни на Java-митапе Big Data МТС. Специалисты Big Data МТС, Райффайзен Банка, Luxoft DXC Technology расскажут, для решения каких задач пригодится реактивное программирование, какие фреймворки уже успешно используют эту концепцию и разберут реальные задачи и варианты их решения на сервлетном блокирующем Spring MVC и на реактивном неблокирующем Spring WebFlux и на Project Loom. В конце участников ждет дискуссия, где эксперты поспорят, кому и когда стоит использовать реактивное программирование и Project Loom. 🧑‍💻 Кому: специалистам по Java любого уровня и всем, кто хочет освоить новый язык 📆 Когда: 29.09, 18:00–21:30 📍Где: проспект Андропова 18, корпус 1 или онлайн
  • Библиотека джависта

    ⁉️Как работает сборщик мусора в Java? Узнайте 19 сентября в 20:00 мск на открытом уроке с Дмитрием Коганом, председателем совета предприятия DXC. 🚀На занятии в OTUS за 1,5 часа разберем: - Java Memory Model - 3 стадии и 2 поколения сборки мусора - Карьеру и гибель объектов ♨️Используйте эту возможность, чтобы перенять опыт эксперта и попробовать онлайн-курс «Java Developer. Professional» для разработчиков с опытом. 📌Пройдите вступительный тест, чтобы участвовать: https://otus.pw/oYMG/