Ответ -
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥1
Java является объектно-ориентированным языком. Это означает, что писать программы на Java нужно с применением объектно-ориентированного стиля. И стиль этот основан на использовании в программе объектов и классов. Преимущества объектно-ориентированной разработки:
1. Модульная разработка кода, что упрощает обслуживание и модификацию. • Возможность повторного использования кода.
2. Повышенная надежность и гибкость кода.
3. Улучшенное понимание кода.
Объектно-ориентированное программирование содержит множество важных функций, таких как инкапсуляция, наследование, полиморфизм и абстракция.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥1
Ответ -
Метод, помеченный ключевым словом abstract - абстрактный метод, т.е. метод, который не имеет реализации. Если в классе присутствует хотя бы один абстрактный метод, то весь класс должен быть объявлен абстрактным.
Использование абстрактных классов и методов позволяет описать некий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5🔥1🥰1
Сборка мусора (Garbage Collection) в Java — это автоматический процесс управления памятью. JVM отслеживает объекты, которые больше не используются, и освобождает память, чтобы предотвратить утечки. Это позволяет разработчикам сосредоточиться на логике приложения, не беспокоясь о ручном управлении памятью.
Кратко о структуре памяти в JVM
Куча (Heap)
Куча - это область памяти JVM, где хранятся все объекты Java и связанные с ними данные. Выделение памяти в куче происходит динамически во время выполнения программы.
Стек (Stack)
Каждый поток в Java имеет собственный стек, который содержит информацию о вызовах методов и локальных переменных. Стек устроен по принципу LIFO (last-in, first-out) и используется для управления выполнением методов и их локальными переменными.
Когда в Java создается новый объект (например, через оператор new), JVM выделяет для него память в куче (heap). Размер выделяемой памяти зависит от структуры объекта, включая его поля и связанные объекты.
После создания объект активно используется приложением. Это означает, что на объект существуют активные ссылки из других частей кода.
Обычные ссылки в Java являются сильными ссылками. Пока на объект есть хотя бы одна сильная ссылка, он остается в памяти.
Правильное применение GC в JVM может значительно улучшить производительность приложений, снизить задержки, предотвратить утечки памяти и улучшить общее управление ресурсами. В конечном итоге, это приводит к созданию более надежных, эффективных и высокопроизводительных приложений, способных удовлетворять самые разнообразные требования и условия эксплуатации.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2🥰1
Ответ -
float, double, boolean, char
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🥰1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5🥰1
Инверсия управления (IoC) — это один из ключевых принципов, лежащих в основе фреймворка Spring. Он позволяет отделить создание объектов от их использования, что делает код более гибким и тестируемым.
Вместо того чтобы создавать зависимости вручную внутри классов, Spring управляет их созданием и внедрением. Это достигается с помощью контейнера IoC, который отвечает за создание и конфигурацию объектов на основе заданных метаданных.
▎Преимущества IoC в Spring:
1. Упрощение тестирования: Легко заменять реальные зависимости на заглушки или моки.
2. Уменьшение связности: Компоненты могут быть изменены или заменены без необходимости модификации кода, который их использует.
3. Упрощение конфигурации: Использование аннотаций (например,
@Autowired) или XML для конфигурации объектов.Пример внедрения зависимости с помощью аннотации:
@Service
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
}
Таким образом, Spring заботится о создании
UserRepository и передает его в UserService, позволяя вам сосредоточиться на бизнес-логике приложения!Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6
This media is not supported in your browser
VIEW IN TELEGRAM
Когда решил прогуляться в рабочее время) 😂
Если было такое, то ставь 🔥
🖥 Java Developer | Backend | #⃣ #мемы #java
Если было такое, то ставь 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8🔥3
final ?Ответ -
1) Класс не может иметь наследников;
2) Метод не может быть переопределен в классах наследниках;
3) Поле не может изменить свое значение после инициализации;
4) Локальные переменные не могут быть изменены после присвоения им значения;
5) Параметры методов не могут изменять своё значение внутри метода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5🔥3
Вы можете создать поток двумя способами:
1. Наследуя класс
Thread.2. Реализуя интерфейс
Runnable.Пример создания потока с использованием
Runnable:class MyRunnable implements Runnable {
public void run() {
System.out.println("Поток запущен!");
}
}
Thread thread = new Thread(new MyRunnable());
thread.start();Для старта такого потока используется метод start.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6🔥3
Вы можете использовать это руководство, чтобы получить простое и практическое понимание того, как работает управление транзакциями в Spring framework с помощью аннотации @Transactional.
🔗 Ссылка на статью
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9
Профилирование — это важнейший аспект оптимизации производительности вашего Java-приложения. Профилировщики помогают отслеживать и анализировать поведение приложения во время выполнения, выявляя потенциальные узкие места и неэффективность. Выявив эти проблемы, вы сможете устранить их и значительно улучшить производительность.
Чтобы максимально эффективно использовать профилировщики Java, следуйте следующим рекомендациям:
1. Профилируйте заранее, профилируйте часто.
Регулярное профилирование вашего приложения в процессе разработки может помочь вам выявить потенциальные проблемы с производительностью на раннем этапе и оперативно устранить их, избегая дорогостоящих исправлений в дальнейшем.
2. Сосредоточьтесь на «горячих точках».
Профилировщики могут помочь вам определить «горячие точки» производительности — области кода, где ваше приложение проводит большую часть своего времени. Сосредоточение усилий по оптимизации на этих областях может привести к наиболее значительному увеличению производительности.
3. Мониторинг использования памяти.
Наблюдение за потреблением памяти и сборкой мусора может помочь вам обнаружить потенциальные утечки памяти и оптимизировать управление памятью в вашем Java-приложении.
4. Анализ поведения потоков.
Понимание того, как ведут себя ваши потоки, может помочь выявить проблемы синхронизации, взаимоблокировки и другие проблемы, связанные с параллелизмом, которые влияют на производительность.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4
Данная статья поможет вам понять как устроен Spring Framework, как работает Inversion of Control на примере Dependency injection (внедрение зависимостей), а так же использование такого фреймворка, как Spring Web MVC
🔗 Ссылка на статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6😁5