Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
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
- 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
👍4
Разница между загрузкой и инициализацией классов в Java на любопытном примере
Привет, сегодняшняя статья будет о некоторых тонкостях загрузки и инициализации классов и немного о производительности (совсем чуть-чуть и в самом конце).
Поводом для написания статьи стал вопрос на StackOverflow. Откройте, но не торопитесь читать ответ ;)
https://habr.com/ru/articles/740156/
👉@BookJava
Привет, сегодняшняя статья будет о некоторых тонкостях загрузки и инициализации классов и немного о производительности (совсем чуть-чуть и в самом конце).
Поводом для написания статьи стал вопрос на StackOverflow. Откройте, но не торопитесь читать ответ ;)
https://habr.com/ru/articles/740156/
👉@BookJava
👍2
Media is too big
VIEW IN TELEGRAM
Java. Многопоточность. Как устроить Deadlock
В данном видео рассказывается о том, что такое Deadlock, и как намеренно создать взаимную блокировку потоков на языке программирования Java.
источник
👉@BookJava
В данном видео рассказывается о том, что такое Deadlock, и как намеренно создать взаимную блокировку потоков на языке программирования Java.
источник
👉@BookJava
👍4
Checkstyle
Это средство разработки, помогающее программистам писать Java-код, соответствующий стандартам программирования. По умолчанию он поддерживает Google Java Style Guide и Sun Code Conventions, но является очень настраиваемым. Он может быть вызван с помощью задачи ANT и программы командной строки
https://github.com/checkstyle/checkstyle
👉@BookJava
Это средство разработки, помогающее программистам писать Java-код, соответствующий стандартам программирования. По умолчанию он поддерживает Google Java Style Guide и Sun Code Conventions, но является очень настраиваемым. Он может быть вызван с помощью задачи ANT и программы командной строки
https://github.com/checkstyle/checkstyle
👉@BookJava
👍4
Media is too big
VIEW IN TELEGRAM
SOLID -- Это Просто! Принципы ООП (Объектно Ориентированного Программирования)
https://habr.com/ru/companies/productivity_inside/articles/505430/
источник
👉@BookJava
https://habr.com/ru/companies/productivity_inside/articles/505430/
источник
👉@BookJava
👍5
150 вопросов и ответов на собеседовании по Java
В следующих разделах мы рассмотрим вопросы Java-собеседования, касающиеся объектно-ориентированного программирования и его особенностей, общие вопросы по Java и ее функциональности, коллекций в Java, сборщиков мусора, обработки исключений, Java-апплетов, Swing, JDBC, Remote Method Invocation (RMI), сервлетов и JSP.
https://www.javacodegeeks.com/java-interview-questions.html
👉@BookJava
В следующих разделах мы рассмотрим вопросы Java-собеседования, касающиеся объектно-ориентированного программирования и его особенностей, общие вопросы по Java и ее функциональности, коллекций в Java, сборщиков мусора, обработки исключений, Java-апплетов, Swing, JDBC, Remote Method Invocation (RMI), сервлетов и JSP.
https://www.javacodegeeks.com/java-interview-questions.html
👉@BookJava
👍5🔥1
Java Collections Framework. Вопросы для собеседования
https://github.com/enhorse/java-interview/blob/master/jcf.md
👉@BookJava
https://github.com/enhorse/java-interview/blob/master/jcf.md
👉@BookJava
👍4🤮1
Что такое 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
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
❤6👍4
Как работает инъекция прототипа в синглтон?
Допустим ситуацию, когда в singleton-компонент внедряется зависимость со скоупом prototype – когда будет создан её объект?
Если просто добавить к определению бина аннотацию
Примитивный способ получать новый объект при каждом обращении – отказаться от
Воспользоваться автоматическим внедрением зависимостей можно через внедрение метода (паттерн «Команда»). Автовайрится не сам объект, а производящий его метод.
Более красивый декларативный способ – правильно настроить определение бина. В аннотации
Лучший способ разобраться со скоупами – прочитать официальный гайд с иллюстрациями, и поэкспериментировать на практике. Для начала попробуйте пример с изображения ниже.
👉@BookJava
Допустим ситуацию, когда в singleton-компонент внедряется зависимость со скоупом prototype – когда будет создан её объект?
Если просто добавить к определению бина аннотацию
@Scope(SCOPE_PROTOTYPE
), и использовать этот бин в синглтоне через аннотацию @Autowired
– будет создан только один объект. Потому что синглтон создается только однажды, и обращение к прототипу случится тоже однажды при его создании (при внедрении зависимости).Примитивный способ получать новый объект при каждом обращении – отказаться от
@Autowired
, и доставать его из контекста вручную. Для этого нужно вызывать context.getBean(MyPrototype.class).Воспользоваться автоматическим внедрением зависимостей можно через внедрение метода (паттерн «Команда»). Автовайрится не сам объект, а производящий его метод.
Более красивый декларативный способ – правильно настроить определение бина. В аннотации
@Scope
кроме самого scopeName
доступен второй параметр – proxyMode
. По умолчанию его значение NO – прокси не создается. Но если указать INTERFACES
или TARGET_CLASS
, то под @Autowired
будет внедряться не сам объект, а сгенерированный фреймворком прокси. И когда проксируемый бин имеет скоуп prototype, то объект внутри прокси будет пересоздаваться при каждом обращении.Лучший способ разобраться со скоупами – прочитать официальный гайд с иллюстрациями, и поэкспериментировать на практике. Для начала попробуйте пример с изображения ниже.
👉@BookJava
👍6❤1