bookjava | Unsorted

Telegram-канал bookjava - Библиотека Java разработчика

10986

📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP

Subscribe to a channel

Библиотека Java разработчика

Как работает инъекция прототипа в синглтон?

Допустим ситуацию, когда в singleton-компонент внедряется зависимость со скоупом prototype – когда будет создан её объект?

Если просто добавить к определению бина аннотацию @Scope(SCOPE_PROTOTYPE), и использовать этот бин в синглтоне через аннотацию @Autowired – будет создан только один объект. Потому что синглтон создается только однажды, и обращение к прототипу случится тоже однажды при его создании (при внедрении зависимости).

Примитивный способ получать новый объект при каждом обращении – отказаться от @Autowired, и доставать его из контекста вручную. Для этого нужно вызывать context.getBean(MyPrototype.class).

Воспользоваться автоматическим внедрением зависимостей можно через внедрение метода (паттерн «Команда»). Автовайрится не сам объект, а производящий его метод.

Более красивый декларативный способ – правильно настроить определение бина. В аннотации @Scope кроме самого scopeName доступен второй параметр – proxyMode. По умолчанию его значение NO – прокси не создается. Но если указать INTERFACES или TARGET_CLASS, то под @Autowired будет внедряться не сам объект, а сгенерированный фреймворком прокси. И когда проксируемый бин имеет скоуп prototype, то объект внутри прокси будет пересоздаваться при каждом обращении.

Лучший способ разобраться со скоупами – прочитать официальный гайд с иллюстрациями, и поэкспериментировать на практике. Для начала попробуйте пример с изображения ниже.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Что такое JDBC-драйвер? Какие бывают типы?

JDBC – Java DataBase Connectivity – соединение с базами данных на Java. Это стандарт взаимодействия с БД. Его интерфейс поставляется в стандартной JDK в виде пакета java.sql. Какой бы библиотекой для работы с базой данных вы ни пользовались, в ее основе почти всегда лежит низкоуровневый JDBC.

JDBC-драйвер – реализация JDBC для определенной базы данных. В приложении может быть зарегистрировано несколько разных драйверов. При соединении к базе, нужный выбирается исходя из URL соединения. Драйверы делятся на 4 типа:

Тип 1 – JDBC-ODBC мост. Делегирует работу с базой установленному в системе ODBC-драйверу. Платформозависимый. Не поддерживается с Java 8.

Тип 2 – Native API. Делегирует работу с базой библиотеке, установленной в системе. Платформозависимый. Библиотеки в отличие от ODBC специфичны для конкретной базы, поэтому такой драйвер обычно работает быстрее.

Тип 3 – драйвер сетевого протокола. Работает с промежуточным слоем (JavaEE сервером приложений), который транслирует запросы в сетевой протокол, с которым работает конкретная БД. Такой драйвер полностью реализован на Java.

Тип 4 – драйвер протокола БД/тонкий драйвер. Полная реализация протокола взаимодействия с базой данных. Отличается от типа 3 тем, что здесь логика протокола находится не на внешнем промежуточном слое, а прямо в самом драйвере.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

📌 Java Collections

👉@BookJava

Читать полностью…

Библиотека Java разработчика

SOLID -- Это Просто! Принципы ООП (Объектно Ориентированного Программирования)

https://habr.com/ru/companies/productivity_inside/articles/505430/

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

🚀 Как решать проблемы масштабирования приложений?

⚡️ Обсудим на бесплатном открытом уроке «Проблема вертикального масштабирования и синхронизация», который пройдёт в рамках курса «Архитектура и шаблоны проектирования» от OTUS.

На эфире мы сосредоточимся на следующих аспектах:
- Предпосылки возникновения проблемы масштабирования
- Проблемы многопоточности, нежелательные состояния и синхронизация
- Обзор модели вычислений, обходящей ограничения «традиционной», и вариантов её реализации
- Обзор подходов к архитектуре приложений, преобладавших в разное время, их особенности, плюсы и недостатки

🔥 Это отличная возможность совершенно бесплатно протестировать формат обучения и задать преподавателю любые вопросы в режиме реального времени. После этого вы сможете приобрести полный курс в рассрочку на комфортных условиях.

Встречаемся 10 октября в 20:00 мск.

👉 Регистрируйтесь бесплатно прямо сейчас и ставьте событие в календарь

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека Java разработчика

Разница между загрузкой и инициализацией классов в Java на любопытном примере

Привет, сегодняшняя статья будет о некоторых тонкостях загрузки и инициализации классов и немного о производительности (совсем чуть-чуть и в самом конце).

Поводом для написания статьи стал вопрос на StackOverflow. Откройте, но не торопитесь читать ответ ;)

https://habr.com/ru/articles/740156/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Эфир на день рождения аяза Аяза. Участие бесплатно!

Что будет на эфире:

- Много эмоций, призов, бонусов и хорошего настроения
- Разберемся, какие ниши прибыльны в 2023 году и стрельнут в 2024
- Расскажу все фишки бизнеса, которые сработали в 2023 году
- Пошаговый проверенный план по выходу на первые 100 т.р. в своем бизнесе
- Как правильно выбрать нишу и стартануть бизнес с 0
- Как найти стартовый капитал или начать без него
- Как начать зарабатывать на своих знаниях

Интересно? Регистрируйся по ссылке ниже. Участие бесплатно!


Зарегистрироваться

#реклама
likecentre.ru

О рекламодателе

Читать полностью…

Библиотека Java разработчика

Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить?

Равные объекты должны возвращать одинаковые хэш коды. При переопределении equals() нужно обязательно переопределять и метод hashCode().

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Learn Java Basics

- Introduction | Java Tutorial for Beginners, Learn to Code
- Hello World | Learn to code, Java Course, Java Tutorial
- Variables, Fields and Methods |Java Course,Java Tutorial
- Arguments, Conditional statements & Arrays | Java Course
- Loops | Learn to code, Java Course, Java Tutorial
- Create a WORDLE Game | Learn to code, Java Course
- IO & Exceptions in WORDLE | Learn to code, Java Course
- Saving and Loading State | Learn to code, Java Course
- Maven, Objects, Encapsulation & Records | Learn to code
- Parsing and Saving JSON with Moshi | Learn to code

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Курс «DevOps для эксплуатации и разработки» от Яндекса

За 6 месяцев обучения освоите принципы DevOps и автоматизацию процесса разработки.

Зарегистрироваться

#реклама 16+
practicum.yandex.ru

О рекламодателе

Читать полностью…

Библиотека Java разработчика

Курс «Python-разработчик» от Яндекса. Начните с нуля.

Программа 2023 года.
Диплом о переподготовке и помощь с поиском работы.
Рассрочка.

Зарегистрироваться

#реклама 16+
practicum.yandex.ru

О рекламодателе

Читать полностью…

Библиотека Java разработчика

🔥 Проверьте, готовы ли вы изучить Apache Kafka?

Ответьте на 10 вопросов за 15 минут онлайн-курса «Apache Kafka» и узнайте, готовы ли вы к обучению в OTUS.

🟢 Пройти тестирование

➡️ В случае успешного прохождения вас ждут подарки – доступ к 3 открытым урокам для знакомства с форматом обучения и специальная цена на курс.

— «ksqlDB - анализируем потоки на SQL»
— «Kafka Streams»
— «Место Kafka в событийно-ориентированных системах»

💪 За 3 месяца обучения вы полностью освоите платформу Apache Kafka, а также научитесь работать с потоками на SQL (ksqlDB), познакомитесь со Schema Registry и освоите REST API.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека Java разработчика

Кредитная карта Тинькофф с лимитом до 1 000 000 рублей!

Бесплатные переводы до 50 000 ₽ на карты других банков без подписки Tinkoff Pro и до 100 000 ₽ с подпиской. Рассрочка на покупки в любых магазинах. Лимит до 1 000 000 ₽. 120 дней без %. Кэшбэк до 30% бонусами за покупки у партнеров Тинькофф. Решение за 2 минуты. Доставим карту на дом!

Подать заявку

#реклама
tinkoff.ru

О рекламодателе

Читать полностью…

Библиотека Java разработчика

Освойте графический дизайн с нуля в Contented

Contented — крупнейшая профильная онлайн-школа дизайна
по версии Smart Ranking 2023.

На курсе вы научитесь создавать визуал для брендов под руководством
экспертов, которые работали с Adidas, ИКЕА, Яндексом и Сoca-Cola.

80% программы — практика. Вы отточите знания и навыки на
реальных задачах крупных компаний.

К концу обучения соберете
сильное портфолио из 18 кейсов, которое выделит вас на рынке
среди соискателей.


Подать заявку

#реклама
contented.ru

О рекламодателе

Читать полностью…

Библиотека Java разработчика

Курс «Графический дизайнер» от Яндекса

За 9 месяцев вы освоите граф. дизайн и соберете портфолио из нескольких проектов!


Попробовать

#реклама 16+
practicum.yandex.ru

О рекламодателе

Читать полностью…

Библиотека Java разработчика

👋Бэкендер, пора расти!

👉Узнайте как на бесплатном вебинаре онлайн-курса «Clojure Developer» — «Особенности Clojure: сфера разработки, основные фишки языка»: регистрация

На бесплатном вебинаре мы:
— рассмотрим, с какими задачами сталкиваются разработчики Clojure и какие основные особенности отличают его от других бэкендовых языков.
— обсудим преимущества, которые предлагает Clojure по сравнению с другими языками.
— изучим, какие возможности и перспективы он предлагает для разработчиков.

Экспертизой поделится руководитель программы и практик Сергей Ткаченко (Clojure Software developer / Team Lead).

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

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека Java разработчика

Java Collections Framework. Вопросы для собеседования

https://github.com/enhorse/java-interview/blob/master/jcf.md

👉@BookJava

Читать полностью…

Библиотека Java разработчика

150 вопросов и ответов на собеседовании по Java

В следующих разделах мы рассмотрим вопросы Java-собеседования, касающиеся объектно-ориентированного программирования и его особенностей, общие вопросы по Java и ее функциональности, коллекций в Java, сборщиков мусора, обработки исключений, Java-апплетов, Swing, JDBC, Remote Method Invocation (RMI), сервлетов и JSP.

https://www.javacodegeeks.com/java-interview-questions.html

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Checkstyle

Это средство разработки, помогающее программистам писать Java-код, соответствующий стандартам программирования. По умолчанию он поддерживает Google Java Style Guide и Sun Code Conventions, но является очень настраиваемым. Он может быть вызван с помощью задачи ANT и программы командной строки

https://github.com/checkstyle/checkstyle

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Java. Многопоточность. Как устроить Deadlock

В данном видео рассказывается о том, что такое Deadlock, и как намеренно создать взаимную блокировку потоков на языке программирования Java.

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Learn Java Basics

- Hello Spring Boot | Learn to code,java tutorial,rest API
- Spring Boot Wordle REST Service | Learn to code
- Spring MVC, Web UI with Thymeleaf | Learn to code
- Refactoring, IoC, DRY, Layered Arch & Spring Stereotypes
- Wordle Web App with Thymeleaf & Spring MVC | Spring Boot
- Understanding Spring Session Scope | Spring Boot
- Spring Boot JavaScript Introduction with Thymeleaf
- Spring Boot Single Page Application (SPA) | Learn Java
- Databases and Unit Tests | Learn Java, Java course
- User Id Cookie and Database | Java Spring Tutorial

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Все, что плохо в Java, хорошо для вас

https://dev.to/codenameone/everything-bad-in-java-is-good-for-you-3fhd

👉@BookJava

Читать полностью…

Библиотека Java разработчика

🤖 Пройди тест по Java

👩‍💻 Проверь свои знания. Сможешь сдать — пройдёшь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене.

За 6 месяцев обучения:
- Научишься создавать современные java-приложения
- Поймешь основы функционирования JVM (сборка мусора, byteCode)
- Освоишь приемы применения многопоточности
- Напишите выпускной проект на любую тему под наставничеством преподавателя

🎫Курс можно приобрести в рассрочку

👉 ПРОЙТИ ТЕСТ

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека Java разработчика

Адаптер (Adapter) — объект, обеспечивающий взаимодействие двух других объектов, один из которых использует, а другой предоставляет несовместимый с первым интерфейс.
Мост (Bridge) — структура, позволяющая изменять интерфейс обращения и интерфейс реализации класса независимо.
Компоновщик (Composite) — объект, который объединяет в себе объекты, подобные ему самому.
Декоратор (Decorator) — класс, расширяющий функциональность другого класса без использования наследования.
Фасад (Facade) — объект, который абстрагирует работу с несколькими классами, объединяя их в единое целое.
Приспособленец (Flyweight) — это объект, представляющий себя как уникальный экземпляр в разных местах программы, но по факту не являющийся таковым.
Заместитель (Proxy) — объект, который является посредником между двумя другими объектами, и который реализует/ограничивает доступ к объекту, к которому обращаются через него.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Что такое абстрактные классы и методы в Java

Абстрагирование – это процесс, в ходе которого от пользователя скрываются многие детали реализации, а предоставляются только те детали, которые действительно важны. Так удаётся сфокусироваться на том, что делает объект, а не как он это делает.

В Java абстрактные классы и методы – это основные инструменты для реализации абстракций. Абстрактные классы служат шаблонами для создания субклассов, а абстрактные методы можно сравнить с чертежами, описывающими поведение этих субклассов.

Если вы новичок в Java или хотите освежить знания о том, чем отличаются абстрактные классы или интерфейсы, то можете почитать руководство и на эту тему: Difference Between Interface and Abstract class in Java.

Rus https://habr.com/ru/companies/piter/articles/738508/

Eng https://www.appsdeveloperblog.com/17-abstract-classes-and-methods-in-java/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Аннотации и рефлексия в Java

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

https://habr.com/ru/companies/otus/articles/764244/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Категоризированный список всех возможностей Java и JVM с JDK 8 по 21

С момента выхода версии 8 и до версии 21 в Java было выпущено 232 JDK Enhancement Proposals (JEPs) и множество более мелких обновлений, каждое из которых привносит те или иные улучшения в платформу. Эта страница представляет собой категоризированный и курируемый список наиболее важных улучшений.

https://advancedweb.hu/a-categorized-list-of-all-java-and-jvm-features-since-jdk-8-to-21/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

В чем разница между Thread.sleep() и Thread.yield()?

Thread.sleep(): этот метод приостанавливает выполнение текущего потока на заданное количество времени. Время задается в миллисекундах и указывается в качестве аргумента метода. При вызове Thread.sleep() поток переходит в состояние ожидания и не выполняет код в течение указанного периода времени. После истечения времени поток снова становится готовым к выполнению. Вызов Thread.sleep() может сгенерировать исключение InterruptedException, поэтому необходимо обрабатывать его или пробрасывать.

Thread.yield(): этот метод предоставляет намек планировщику потоков на то, что поток, вызвавший yield(), готов уступить процессорное время другим потокам с тем же приоритетом. Однако это рекомендация, а не гарантия. Вызов Thread.yield() приводит к тому, что текущий поток переходит из исполняемого в состояние готовности, чтобы другие потоки могли получить доступ к процессору. Однако, если нет других готовых потоков с тем же приоритетом, поток может продолжить выполнение.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Top Core Java Interview Questions for Freshers and Experienced

https://www.edureka.co/blog/interview-questions/java-interview-questions/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Дженерики в Java и их реализация

В программировании на Java в J2SE 5 для работы с типобезопасными объектами были введены языковые дженерики. Они выявляют ошибки на этапе компиляции, благодаря чему код становится стабильным. До введения дженериков в коллекции можно было хранить объекты любого типа. Теперь, после введения дженериков в язык программирования Java, программисты вынуждены хранить определенные типы объектов.

https://dzone.com/articles/generics-in-java-and-their-implementation

👉@BookJava

Читать полностью…
Subscribe to a channel