new vs valueOf
Старайтесь всегда использовать метод valueOf вместо конструктора в стандартных классах-оболочках примитивных типов, кроме тех случаев, когда вам нужно конкретно выделить память под новое значение. Сейчас объясню, почему.
Все оболочки, кроме чисел с плавающей точкой, от Byte до Long, имеют кэш. По умолчанию этот кэш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кэша. Значение из кэша достается в 3.5 раза быстрее, чем при использовании конструктора, плюс идёт экономия памяти.
Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной.
👉@BookJava
Старайтесь всегда использовать метод valueOf вместо конструктора в стандартных классах-оболочках примитивных типов, кроме тех случаев, когда вам нужно конкретно выделить память под новое значение. Сейчас объясню, почему.
Все оболочки, кроме чисел с плавающей точкой, от Byte до Long, имеют кэш. По умолчанию этот кэш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кэша. Значение из кэша достается в 3.5 раза быстрее, чем при использовании конструктора, плюс идёт экономия памяти.
Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной.
👉@BookJava
👍10
Как создавать отзывчивые веб-приложения с помощью Spring Boot и React: Пошаговое руководство
В этой статье мы рассмотрим, почему Spring Boot и ReactJs могут стать идеальным дуэтом для создания полнофункциональных веб-приложений, а также рассмотрим процесс создания внутреннего приложения Spring Boot и его интеграцию с внешним приложением React.
https://reflectoring.io/build-responsive-web-apps-with-springboot-and-react-tutorial/
👉@BookJava
В этой статье мы рассмотрим, почему Spring Boot и ReactJs могут стать идеальным дуэтом для создания полнофункциональных веб-приложений, а также рассмотрим процесс создания внутреннего приложения Spring Boot и его интеграцию с внешним приложением React.
https://reflectoring.io/build-responsive-web-apps-with-springboot-and-react-tutorial/
👉@BookJava
👍5
Чем отличается Lambda от анонимного класса?
Хотя в некоторых случаях они и могут быть использованы взаимозаменяемо, Lambda-выражения и анонимные классы имеют различия.
Разберем основные из них:
1. Синтаксис: Lambda-выражения имеют более краткий и лаконичный синтаксис по сравнению с анонимными классами.
2. Область применения: Lambda-выражения могут быть использованы только для функциональных интерфейсов, в то время как анонимные классы могут быть использованы для любых интерфейсов и абстрактных классов.
3. Ключевое слово this: В анонимных классах ключевое слово this ссылается на сам анонимный класс, в то время как в lambda-выражениях this ссылается на объемлющий.
4. Производительность: Lambda-выражения обычно имеют лучшую производительность по сравнению с анонимными классами, так как они компилируются в приватные методы и используют инструкцию invokedynamic.
👉@BookJava
Хотя в некоторых случаях они и могут быть использованы взаимозаменяемо, Lambda-выражения и анонимные классы имеют различия.
Разберем основные из них:
1. Синтаксис: Lambda-выражения имеют более краткий и лаконичный синтаксис по сравнению с анонимными классами.
2. Область применения: Lambda-выражения могут быть использованы только для функциональных интерфейсов, в то время как анонимные классы могут быть использованы для любых интерфейсов и абстрактных классов.
3. Ключевое слово this: В анонимных классах ключевое слово this ссылается на сам анонимный класс, в то время как в lambda-выражениях this ссылается на объемлющий.
4. Производительность: Lambda-выражения обычно имеют лучшую производительность по сравнению с анонимными классами, так как они компилируются в приватные методы и используют инструкцию invokedynamic.
👉@BookJava
👍8
Elasticsearch - пишем свой поисковик на Java
00:00 Знакомство с автором
00:37 План вебинара
1:28 Изучение Java разработки на ITVDN
1:47 Задачи полнотекстового поиска
4:05 Поисковой движок Elasticsearch
7:45 Структура приложения
10:20 Установка и запуск Elasticsearch
13:28 Настройка в Postman
15:50 Обзор проекта в Elasticsearch
17:37 Создание индексов, поиск по индексу, поиск по нескольким полям
33:13 Поиск в найденном
40:30 Агрегация результатов поиска, поиск запросов с опечатками
46:38 Ранжирование результатов
51:23 Настройка форматирования результатов
55:52 Пагинация
1:05:30 Асинхронные вызовы, продвинутые возможности
1:17:00 Заключение
https://www.youtube.com/watch?v=sxepRqPnqew
👉@BookJava
00:00 Знакомство с автором
00:37 План вебинара
1:28 Изучение Java разработки на ITVDN
1:47 Задачи полнотекстового поиска
4:05 Поисковой движок Elasticsearch
7:45 Структура приложения
10:20 Установка и запуск Elasticsearch
13:28 Настройка в Postman
15:50 Обзор проекта в Elasticsearch
17:37 Создание индексов, поиск по индексу, поиск по нескольким полям
33:13 Поиск в найденном
40:30 Агрегация результатов поиска, поиск запросов с опечатками
46:38 Ранжирование результатов
51:23 Настройка форматирования результатов
55:52 Пагинация
1:05:30 Асинхронные вызовы, продвинутые возможности
1:17:00 Заключение
https://www.youtube.com/watch?v=sxepRqPnqew
👉@BookJava
YouTube
Elasticsearch - пишем свой поисковик на Java
Промокод на скидку 15% на все курсы ITVDN- 4YOUTUBE
Материалы вебинара - https://itvdn.com/ru/webinars/description/elasticksearch?utm_source=yb_webinar_elasticksearch
На вебинаре “Elasticsearch - пишем свой поисковик на Java” будет рассмотрено, как создать…
Материалы вебинара - https://itvdn.com/ru/webinars/description/elasticksearch?utm_source=yb_webinar_elasticksearch
На вебинаре “Elasticsearch - пишем свой поисковик на Java” будет рассмотрено, как создать…
👍11😢1
Дженерики в Java и их реализация
В программировании на Java в J2SE 5 для работы с типобезопасными объектами были введены языковые дженерики. Они выявляют ошибки на этапе компиляции, благодаря чему код становится стабильным. До введения дженериков в коллекции можно было хранить объекты любого типа. Теперь, после введения дженериков в язык программирования Java, программисты вынуждены хранить определенные типы объектов.
https://dzone.com/articles/generics-in-java-and-their-implementation
👉@BookJava
В программировании на Java в J2SE 5 для работы с типобезопасными объектами были введены языковые дженерики. Они выявляют ошибки на этапе компиляции, благодаря чему код становится стабильным. До введения дженериков в коллекции можно было хранить объекты любого типа. Теперь, после введения дженериков в язык программирования Java, программисты вынуждены хранить определенные типы объектов.
https://dzone.com/articles/generics-in-java-and-their-implementation
👉@BookJava
DZone
Generics in Java and Their Implementation
In Java programming language, generics are introduced in J2SE 5 for dealing with type-safe objects. Read more.
👍3
Top Core Java Interview Questions for Freshers and Experienced
https://www.edureka.co/blog/interview-questions/java-interview-questions/
👉@BookJava
https://www.edureka.co/blog/interview-questions/java-interview-questions/
👉@BookJava
👍4
В чем разница между Thread.sleep() и Thread.yield()?
👉@BookJava
Thread.sleep()
: этот метод приостанавливает выполнение текущего потока на заданное количество времени. Время задается в миллисекундах и указывается в качестве аргумента метода. При вызове Thread.sleep() поток переходит в состояние ожидания и не выполняет код в течение указанного периода времени. После истечения времени поток снова становится готовым к выполнению. Вызов Thread.sleep() может сгенерировать исключение InterruptedException, поэтому необходимо обрабатывать его или пробрасывать.Thread.yield():
этот метод предоставляет намек планировщику потоков на то, что поток, вызвавший yield(), готов уступить процессорное время другим потокам с тем же приоритетом. Однако это рекомендация, а не гарантия. Вызов Thread.yield() приводит к тому, что текущий поток переходит из исполняемого в состояние готовности, чтобы другие потоки могли получить доступ к процессору. Однако, если нет других готовых потоков с тем же приоритетом, поток может продолжить выполнение.👉@BookJava
👍9❤1
Категоризированный список всех возможностей 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
С момента выхода версии 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
👍6
Что такое абстрактные классы и методы в 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 или хотите освежить знания о том, чем отличаются абстрактные классы или интерфейсы, то можете почитать руководство и на эту тему: 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
👍6
Адаптер (Adapter) — объект, обеспечивающий взаимодействие двух других объектов, один из которых использует, а другой предоставляет несовместимый с первым интерфейс.
Мост (Bridge) — структура, позволяющая изменять интерфейс обращения и интерфейс реализации класса независимо.
Компоновщик (Composite) — объект, который объединяет в себе объекты, подобные ему самому.
Декоратор (Decorator) — класс, расширяющий функциональность другого класса без использования наследования.
Фасад (Facade) — объект, который абстрагирует работу с несколькими классами, объединяя их в единое целое.
Приспособленец (Flyweight) — это объект, представляющий себя как уникальный экземпляр в разных местах программы, но по факту не являющийся таковым.
Заместитель (Proxy) — объект, который является посредником между двумя другими объектами, и который реализует/ограничивает доступ к объекту, к которому обращаются через него.
👉@BookJava
Мост (Bridge) — структура, позволяющая изменять интерфейс обращения и интерфейс реализации класса независимо.
Компоновщик (Composite) — объект, который объединяет в себе объекты, подобные ему самому.
Декоратор (Decorator) — класс, расширяющий функциональность другого класса без использования наследования.
Фасад (Facade) — объект, который абстрагирует работу с несколькими классами, объединяя их в единое целое.
Приспособленец (Flyweight) — это объект, представляющий себя как уникальный экземпляр в разных местах программы, но по факту не являющийся таковым.
Заместитель (Proxy) — объект, который является посредником между двумя другими объектами, и который реализует/ограничивает доступ к объекту, к которому обращаются через него.
👉@BookJava
👍7🔥1👌1
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
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
- 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
- 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
👍3
Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить?
Равные объекты должны возвращать одинаковые хэш коды. При переопределении equals() нужно обязательно переопределять и метод hashCode().
👉@BookJava
Равные объекты должны возвращать одинаковые хэш коды. При переопределении equals() нужно обязательно переопределять и метод hashCode().
👉@BookJava
👍4