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

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

20804 @javaproglib

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

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

    📜 15 лучших практик SQL после 20 лет программирования Даже если ваш SQL-код работает правильно, его все равно можно улучшить, в частности в том, что касается производительности и читаемости. В статье перечислены лучшие практики составления SQL-запросов, которым вы должны следовать, чтобы сделать ваш код более легким для чтения и понимания. 🔗 Основной сайт 🔗 Зеркало
  • Библиотека джависта

    DDD, HEXAGON, HIBERNATE, не считая JOOQ. Часть 2: гексагональная архитектура

    Продолжаем серию публикаций для java разработчиков, создающих системы со сложной предметной областью, первую часть можно почитать здесь. В новой статье поговорим о гексагональной архитектуре....

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

    Какие области видимости переменных существуют в JSP? Область видимости объектов определяется тем контекстом, в который помещается данный объект. В зависимости от той или иной области действия так же определяется время существования объекта. В JSP предусмотрены следующие области действия переменных (объектов): • request область действия запроса - объект будет доступен на текущей JSP странице, странице пересылки (при использовании jsp:forward) или на включаемой странице (при использовании jsp:include); • session область действия сессии - объект будет помещен в сеанс пользователя, будет доступен на всех JSP страницах и будет существовать пока существует сессия пользователя, или он не будет из нее принудительно удален. • application область действия приложения - объект будет доступен для всех пользователей на всех JSP страницах и будет существовать на протяжении всей работы приложения или пока не будет удален принудительно и контекста приложения. • page область действия страницы - объект будет доступен только на той странице, где он определен. На включаемых (jsp:include) и переадресуемых (jsp:forward) страницах данный объект уже не будет доступен. Таким образом, чтобы объект был доступен всем JSP страницам, необходимо указать область видимости application или session, в зависимости от того требуется ли доступ к объекту всем пользователям или только текущему. Для указания требуемой области действия при определении объекта на JSP странице используется атрибут scope тега jsp:useBean: <id="myBean" class="ru.javacore.MyBean" scope="session"/> Если не указывать атрибут scope, то по умолчанию задается область видимости страницы page.
  • Реклама

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

    Рекомендации по миграции на Spring 6 Буквально на днях вышла новая версия Spring Framework, особенностью которой является поддержка Java 17, Hibernate 6.1/Jakarta Persistence 3.1 и др. 😃 Статья от Vlad Mihalcea представляет собой рекомендации по миграции с более ранних версий фреймворка к новой версии. Хорошей практики! Читать статью
    The best way to do the Spring 6 migration - Vlad Mihalcea

    The Spring 6 Migration Guide will show you how to migrate an existing application to and how to get the most out of this upgrade.

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

    👨‍💻Какие есть особенности у языка Groovy? 🟡Уже завтра 28 ноября в 20:00 пройдет бесплатный открытый урок «Магия строк в Groovy» в OTUS. 🚀Вебинар приурочен к старту нового потока онлайн-курса «Groovy Developer». На вебинаре мы изучим особенности использования и реализации строк в Groovy: как применять и какие фокусы можно делать со строками. На занятии мы затронем темы: ➖ String и GString, подстановки ➖ Переопределение операторов и строки ➖ Приведение типов ➖Аннотация @ToString 😎Кому будет полезно? Java-разработчикам и разработчикам на других языках программирования, которые хотят познакомиться с особенностями языка Groovy. 🖌 Пройдите вступительный тест, чтобы записаться на урок: https://otus.pw/OTSo9/
  • Библиотека джависта

    Друзья, Spring Boot 3.0 стал доступен в репозитории Maven! 😃 Spring Boot 3.0 это: ✔️ 12 месяцев работы 151 разработчика ✔️ 5700 коммитов ✔️ Работа в Java 17+ ✔️ Работа в пространстве имен Jakarta EE9+ и Jakarta EE 10 API и многое другое. Подробности в предложенном релизе. Читать статью
    Spring Boot 3.0 Goes GA

    On behalf of the team, it is my very great pleasure to announce that Spring Boot 3.0 is now generally available and 3.0.0 can be found in Maven Central.

    This release is the culmination of 12 months work and over 5700 commits by 151 different individuals. A massive thank you to everyone that has contributed, and to all the early adopters that have been providing vital feedback on the milestones.

    This is the first major revision of Spring Boot since 2.0 was released 4.5 years ago. It’s also the first GA version of Spring Boot that provides support for Spring Framework 6.0 and GraalVM.

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

    Если посмотреть код внутри созданной JSP страницы, то он будет выглядеть как HTML и не будет похож на java класс. Конвертацией JSP страниц в HTML код занимается контейнер, который так же создает и сервлет для использования в веб приложении. #вопросы_с_собеседований Расскажите об этапах (фазах) жизненного цикла JSP. Жизненный цикл JSP состоит из нескольких фаз, которыми руководит JSP контейнер: • Translation – проверка и парсинг кода JSP страницы для создания кода сервлета. • Compilation – компиляция исходного кода сервлета. • Class Loading – загрузка скомпилированного класса в память. • Instantiation – внедрение конструктора без параметра загруженного класса для инициализации в памяти. • Initialization – вызов init() метода объекта JSP класса и инициализация конфигурации сервлета с первоначальными параметрами, которые указаны в дескрипторе развертывания (web.xml). После этой фазы JSP способен обрабатывать запросы клиентов. Обычно эти фазы происходят после первого запроса клиента (т.е. ленивая загрузка), но можно настроить загрузку и инициализацию JSP на старте приложения по аналогии с сервлетами. • Request Processing – длительный жизненный цикл обработки запросов клиента JSP страницей. Обработка является многопоточной и аналогична сервлетам — для каждого запроса создается новый поток, объекты ServletRequest и ServletResponse, происходит выполнение сервис методов. • Destroy – последняя фаза жизненного цикла JSP, на которой её класс удаляется из памяти. Обычно это происходит при выключении сервера или выгрузке приложения.
  • Библиотека джависта

    🧑‍💻 Всем привет! На связи «Библиотека программиста» Мы переезжаем с текущего офиса в центре Москвы с идеальной локацией — рядом метро и все необходимое. Если у кого-то есть знакомые, которым нужно хорошее пространство на 5 человек, например, взамен коворкингу, то это идеальный вариант. А еще там осталась мебель в хорошем состоянии, которую можно выкупить дешевле, чем заказывать из магазина. Адрес: https://yandex.ru/maps/-/CCUfFIa2-D Записаться на просмотр: https://proglib.tech/w/c9e8bf63
  • Библиотека джависта

    Питер на связи? Мы к вам с офлайн-митапом от Сбера для Java-разработчиков. Мы приготовили для вас любопытные кейсы, актуальные технологии, а также нетворкинг и вкусный кофе. В плане мероприятия: • Убираем облака из рабочих процессов, достаточно обычного телефона для хостинга. • Решаем проблемы при использовании JNI для эксплуатации высоконагруженной системы. • Рассуждаем о плюсах и минусах Maven и Gradle, ищем и находим интересные альтернативы. Много полезной информации от топовых специалистов. Приходите! 🕖 Дата мероприятия: 29 ноября, 17:00 🚩 Место проведения: СПб, Аптекарский проспект, 4 корп. 2 (Технопарк «Ленполиграфмаш», конференц-зал «Амфитеатр»)
  • Библиотека джависта

    Друзья, в этом месяце состоялся релиз новой версии Spring Framework 6 и должен состояться релиз новой версии Spring Boot 3! 😃 В предложенном сегодня видео Josh Long продемонстрирует современный, опережающий свое время движок для компиляции в Spring Framework 6 и Spring Boot 3, повышающий скорость работы приложения и эффективность используемой памяти. Приятного просмотра!
    Spring Tips: the road to Spring Boot 3: ahead-of-time compilation and GraalVM

    Hi, Spring fans! In this installment of Spring Tips, we look at everything you ever wanted (and didn't) to know about the fantastic new ahead-of-time (AOT) compilation engine in Spring Framework 6 and Spring Boot 3 (due out November 24th, 2022!) that supports GraalVM usecases, and how it brings the Spring component model, and your applications, to new, blazing-fast and memory-efficient places. code: https://github.com/spring-tips/spring-boot-3-aot

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

    ❗️Хотите освоить Kotlin для разработки серверных приложений? ⚡️Приглашаем 30 ноября в 19:00 мск на бесплатный вебинар «Интероперабельность Kotlin Native и C на примере видеоплеера». 📚На вебинаре мы: — Рассмотрим, как происходит написание и компиляция нативного кода в Kotlin — Узнаем, как к нему подключаются нативные библиотеки — Сделаем небольшое приложение для воспроизведения видео с использованием нативной библиотеки gstreamer. 👉 Регистрация на вебинар: https://otus.pw/vhiy/
  • Библиотека джависта

    JUnit: тестирование методов, вызывающих System.exit()

    1. Обзор В определенных ситуациях нам может потребоваться, чтобы метод вызывал System.exit() и завершал работу приложения. Например, в случае если приложение должно быть запущено только один раз, а...

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

    Чего ждать от YaTalks 3 и 4 декабря Главная конференция Яндекса для IT-сообщества вновь пройдет онлайн. Эксперты из российских и международных компаний поговорят об изменениях в жизни и технологиях, которые произошли за этот год. На бэкенд-треке обсудят нестандартные кейсы работы с монорепозиториями и внутреннюю логику развития баз данных и их будущее. В лайфстайл-треке тоже будет интересно: спикеры расскажут про путь из экспертов в руководители и обратно, про инженерную культуру в эпоху remote и читательские стратегии в сложные времена. Зарегистрироваться
  • Библиотека джависта

    Расскажите про вложенные классы. В каких случаях они применяются? Класс называется вложенным (Nested class), если он определен внутри другого класса. Вложенный класс должен создаваться только для того, чтобы обслуживать обрамляющий его класс. Если вложенный класс оказывается полезен в каком-либо ином контексте, он должен стать классом верхнего уровня. Вложенные классы имеют доступ ко всем (в том числе приватным) полям и методам внешнего класса, но не наоборот. Из-за этого разрешения использование вложенных классов приводит к некоторому нарушению инкапсуляции. Существуют четыре категории вложенных классов: • Static nested class (Статический вложенный класс); • Member inner class (Простой внутренний класс); • Local inner class (Локальный класс); • Anonymous inner class (Анонимный класс). Такие категории классов, за исключением первого, также называют внутренними (Inner class). Внутренние классы ассоциируются не с внешним классом, а с экземпляром внешнего. Каждая из категорий имеет рекомендации по своему применению. Если вложенный класс должен быть виден за пределами одного метода или он слишком длинный для того, чтобы его можно было удобно разместить в границах одного метода и если каждому экземпляру такого класса необходима ссылка на включающий его экземпляр, то используется нестатический внутренний класс. В случае, если ссылка на обрамляющий класс не требуется - лучше сделать такой класс статическим. Если класс необходим только внутри какого-то метода и требуется создавать экземпляры этого класса только в этом методе, то используется локальный класс. А, если к тому же применение класса сводится к использованию лишь в одном месте и уже существует тип, характеризующий этот класс, то рекомендуется делать его анонимным классом.
  • Библиотека джависта

    #вопросы_с_собеседований Какой класс позволяет читать данные из входного байтового потока в формате примитивных типов данных? Класс DataInputStream представляет поток ввода и предназначен для записи данных примитивных типов, таких, как int, double и т.д. Для каждого примитивного типа определен свой метод для считывания: • boolean readBoolean(): считывает из потока булевое однобайтовое значение • byte readByte(): считывает из потока 1 байт • char readChar(): считывает из потока значение char double readDouble(): считывает из потока 8-байтовое значение double float readFloat(): считывает из потока 4-байтовое значение float int readInt(): считывает из потока целочисленное значение int long readLong(): считывает из потока значение long short readShort(): считывает значение short String readUTF(): считывает из потока строку в кодировке UTF-8
  • Реклама

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

    🔥Джавист, испытай себя - пройди тест по JAVA🔥 🚀Вырвись из однотипных задач на Java. Освой продвинутые подходы. Пройди тест из 20 вопросов и проверь свои знания. Сможешь сдать — пройдёшь на продвинутый курс👩‍💻 "Java Developer. Professional " от OTUS по специальной цене. ⏰ Время прохождения теста ограничено 30 минут 🖌ПРОЙТИ ТЕСТ: https://otus.pw/3tAj/
  • Библиотека джависта

    #вопросы_с_собеседований Какие классы поддерживают чтение и запись потоков в компрессированном формате? ☕️ DeflaterOutputStream - компрессия данных в формате deflate. ☕️ Deflater - компрессия данных в формат ZLIB. ☕️ ZipOutputStream - потомок DeflaterOutputStream для компрессии данных в формат Zip. ☕️ GZIPOutputStream - потомок DeflaterOutputStream для компрессии данных в формат GZIP. ☕️ InflaterInputStream - декомпрессия данных в формате deflate. ☕️ Inflater - декомпрессия данных в формате ZLIB. ☕️ ZipInputStream - потомок InflaterInputStream для декомпрессии данных в формате Zip. ☕️ GZIPInputStream - потомок InflaterInputStream для декомпрессии данных в формате GZIP.
  • Библиотека джависта

    🙌 12 алгоритмов, которые должен знать каждый разработчик: объясняем на гифках Алгоритмы давно заняли особую нишу как в Computer Science, так и в разработке ПО. Однако какую роль они играют в жизни разработчика и что конкретно из них следует изучить и знать? Об этом вы узнаете из нашей статьи. https://proglib.io/sh/R98fxX2aUq