Библиотека джависта | Java, Spring, Maven, Hibernate
24.9K subscribers
1.87K photos
38 videos
42 files
2.65K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
Хочешь стать Java экспертом? Подписывайся на канал @java_fillthegaps

статьи по Java и её экосистеме
паттерны и принципы разработки
прохождение собеседований и карьерный рост

Посты, обязательные к прочтению:
▪️JDK, JRE, JVM, JIT и Java 11.
▪️Полный гайд по сравнению переменных.
▪️Принцип подстановки Барбары Лисков: теория и практика.
▪️Сборщики мусора. Плюсы и минусы G1.

Подписывайся: @java_fillthegaps
Уроки по регулярным выражениям в Java.

https://proglib.io/w/981e79b3
Ответ на вопрос
Преимущества:
Объектная модель вполне естественна, поскольку в первую очередь ориентирована на человеческое восприятие мира, а не на компьютерную реализацию.
Классы позволяют проводить конструирование из полезных компонентов, обладающих простыми инструментами, что позволяет абстрагироваться от деталей реализации.
Данные и операции над ними образуют определенную сущность, и они не разносятся по всей программе, как нередко бывает в случае процедурного программирования, а описываются вместе. Локализация кода и данных улучшает наглядность и удобство сопровождения программного обеспечения.
Инкапсуляция позволяет привнести свойство модульности, что облегчает распараллеливание выполнения задачи между несколькими исполнителями и обновление версий отдельных компонентов.
Возможность создавать расширяемые системы.
Использование полиморфизма оказывается полезным при:
✔️Обработке разнородных структур данных. Программы могут работать, не различая вида объектов, что существенно упрощает код. Новые виды могут быть добавлены в любой момент.
✔️Изменении поведения во время исполнения. На этапе исполнения один объект может быть заменен другим, что позволяет легко, без изменения кода, адаптировать алгоритм в зависимости от того, какой используется объект.
✔️Реализации работы с наследниками. Алгоритмы можно обобщить настолько, что они уже смогут работать более чем с одним видом объектов.
✔️Возможности описать независимые от приложения части предметной области в виде набора универсальных классов, или фреймворка, который в дальнейшем будет расширен за счет добавления частей, специфичных для конкретного приложения.
Повторное использование кода:
✔️Сокращается время на разработку.
✔️Компоненты многоразового использования обычно содержат гораздо меньше ошибок, чем вновь разработанные, ведь они уже не раз подвергались проверке.
✔️Когда некий компонент используется сразу несколькими клиентами, улучшения, вносимые в его код, одновременно оказывают положительное влияние и на множество работающих с ним программ.
✔️Если программа опирается на стандартные компоненты, ее структура и пользовательский интерфейс становятся более унифицированными, что облегчает ее понимание и упрощает использование.
Недостатки:
В сложных иерархиях классов поля и методы обычно наследуются с разных уровней. И не всегда легко определить, какие поля и методы фактически относятся к данному классу.
Код для обработки сообщения иногда «размазан» по многим методам (иначе говоря, обработка сообщения требует не одного, а многих методов, которые могут быть описаны в разных классах).
Документирование классов - задача более трудная, чем это было в случае процедур и модулей. Поскольку любой метод может быть переопределен, в документации должно говориться не только о том, что делает данный метод, но и о том, в каком контексте он вызывается.
Неэффективность и неэкономное распределение памяти на этапе выполнения (по причине издержек на динамическое связывание и проверки типов на этапе выполнения).
Излишняя универсальность. Часто содержится больше методов, чем это реально необходимо текущей программе. А поскольку лишние методы не могут быть удалены, они становятся мертвым грузом.
016 - восьмеричное число. На это указывает префикс 0
public class Solution {
public static void main(String args) {
System.out.print("Скидка 50% на годовую подписку JavaRush");
}
}
Beginning Programming with Java For Dummies (2017)
Автор: Barry Burd

Если вы хотите программировать на Java, книга научит вас созданию программ, способам решения стандартных задач и многому другому. Независимо от того, работаете ли вы с кем-то или начинаете карьеру, эта книга может стать ресурсом, к которому вы будете обращаться снова и снова, совершенствуя свое понимание нюансов этого популярного языка программирования.

Скачать книгу
#вопросы_с_собеседований
1. Может ли статический метод быть переопределён или перегружен?
2. Могут ли нестатические методы перегрузить статические?
1. Перегружен - да. Всё работает точно так же как и с обычными методами - 2 статических метода могут иметь одинаковое имя, если количество их параметров или типов различается.

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

В целом, к статическим полям и методам рекомендуется обращаться через имя класса, а не объект.
2. Да. В итоге получатся два разных метода. Статический будет принадлежать классу и будет доступен через его имя, а нестатический будет принадлежать конкретному объекту и доступен через вызов метода этого объекта.
Java Performance Companion (2016)

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

Скачать книгу
Большинство из нас уже дико устали от карантина: готовка как будто 24/7 или поглощение фаст-фуда, сложности с заказом продуктов (а выходить всё-таки не хочется!), риск закончить карантин с лишними кг на боках.
Трать время на то, в чём ты профессионал, а не на оладьи. А мы возьмём готовку на себя!

Почему тебе нужно попробовать justfood:

4 линейки питания. Два варианта для спортсменов, а также премиальная и вегетарианская линейки

+500 блюд во всех линейках. Есть супы, салаты, курица и говядина, правильные десерты, фрукты и овощи

У каждой линейки дневная калорийность от 1300 ккал до 2500 ккал. На каждый день 5-7 блюд

Привозим по всей Москве и даже до Бетонки

Антисептик в подарок. Безопасная доставка и абсолютное соблюдение мер предосторожности на производстве

Месяц питания от 21 384 ₽. Пробный день от 990 ₽!

По промокоду Bibliojava дополнительная скидка на заказ от 5 дней.

Заказывай по ссылке: https://bit.ly/2RjJgp8
Мы можем использовать все предопределенные имена классов Java и интерфейсов в качестве идентификаторов.
#вопросы_с_собеседований
Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними?