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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
Как поведёт себя уже инстанциированный итератор для collection, если вызвать collection.remove()?

При следующем вызове методов итератора будет выброшено ConcurrentModificationException.
#вопросы_с_собеседований
Расскажите о типах шаблонов проектирования.
✔️Основные (Fundamental) — основные строительные блоки других шаблонов. Большинство других шаблонов использует эти шаблоны в той или иной форме.
✔️Порождающие шаблоны (Creational) — шаблоны проектирования, которые абстрагируют процесс создания экземпляра. Они позволяют сделать систему независимой от способа создания, композиции и представления объектов. Шаблон, порождающий классы, использует наследование, чтобы изменять созданный объект, а шаблон, порождающий объекты, делегирует создание объектов другому объекту.
✔️Структурные шаблоны (Structural) определяют различные сложные структуры, которые изменяют интерфейс уже существующих объектов или его реализацию, позволяя облегчить разработку и оптимизировать программу.
✔️Поведенческие шаблоны (Behavioral) определяют взаимодействие между объектами, увеличивая таким образом его гибкость.
В чем разница между классами java.util.Collection и java.util.Collections?

java.util.Collections - набор статических методов для работы с коллекциями.

java.util.Collection - один из основных интерфейсов Java Collections Framework.
Beginning Programming with Java For Dummies (2017)
Автор: Barry Burd
Количество страниц: 560

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

Скачать книгу
Pivotal Certified Professional Core Spring 5 Developer Exam (2019)
Автор: Iuliana Cosmina
Количество страниц: 1027

Книга помогает сдать экзамен Pivotal Certified Professional для Core Spring на основе последней версии Spring Framework 5, используя примеры исходного кода и пробные варианты. Теперь она включает WebFlux, реактивное программирование и многое другое, что можно обнаружить в Spring 5. Вы найдете описательный обзор модулей Spring, связанных с сертификацией, и один пример приложения, демонстрирующий использование всех необходимых модулей Spring.

Скачать книгу
Вакансия: спикер (преподаватель) образовательных IT-курсов

Кого мы ищем? Разработчиков с опытом публичных выступлений.

Обязанности:
– Запись видеокурсов по подготовленным нашими авторам материалам
– Проверка домашних заданий студентов

Требования. Нам важно, чтобы спикер обладал грамотной речью и хорошей дикцией, имел навыки программирования на одном или нескольких языках
– Python
– HTML, CSS, JS
– Java
– SQL

Условия работы. Мы рассчитываем на долгосрочное сотрудничество. Загрузка от 5 часов в неделю, оплата — от 1500 рублей за час съемки. Работа в нашей студии в Москве.

В отклике на вакансию укажите образование, опыт выступлений и разработки. Будет классно, если вы сможете записать краткий видеорассказ о себе — 30-40 секунд.

Контакт для связи: @vlad_proglib
Почему нельзя объявить метод интерфейса с модификатором final?

В случае интерфейсов указание модификатора final бессмысленно, т.к. все методы интерфейсов неявно объявляются как абстрактные, т.е. их невозможно выполнить, не реализовав где-то еще, а этого нельзя будет сделать, если у метода идентификатор final.
К каким конструкциям Java применим модификатор static?
• полям;
• методам;
• вложенным классам;
• членам секции import.
Зачем нужны и какие бывают блоки инициализации?

Блоки инициализации представляют собой код, заключенный в фигурные скобки и размещаемый внутри класса вне объявления методов или конструкторов.

• Существуют статические и нестатические блоки инициализации.
• Блок инициализации выполняется перед инициализацией класса загрузчиком классов или созданием объекта класса с помощью конструктора.
• Несколько блоков инициализации выполняются в порядке следования в коде класса.
• Блок инициализации способен генерировать исключения, если их объявления перечислены в throws всех конструкторов класса.
• Блок инициализации возможно создать и в анонимном классе.
JDBC, Java DataBase Connectivity (соединение с базами данных на Java) — промышленный стандарт взаимодействия Java-приложений с различными СУБД. Реализован в виде пакета java.sql, входящего в состав Java SE.

JDBC основан на концепции драйверов, которые позволяют получать соединение с базой данных по специально описанному URL. При загрузке драйвер регистрирует себя в системе и в дальнейшем автоматически вызывается, когда программа требует URL, содержащий протокол, за который этот драйвер отвечает.
Зачем учить Java в 2021-м?

Java занимает 2-е место в рейтинге TIOBE. Языку больше 20 лет, а на нём до сих пор пишут всё: сайты и мобильные приложения, нейросети и облачные сервисы. С помощью Java решают и социальные проблемы.

В 2014 году компания mFrontiers получила премию от Oracle. Ребята создали трекер доступности питьевой воды в бедных регионах Кении. Софт был написан для Android-смартфонов на Java.

Почему программисты выбирают Java?

◾️ Java постоянно развивается: язык пережил уже 11 версий
◾️ Производительность Java выше, чем у Python
◾️ Благодаря строгой типизации вероятность ошибок в Java меньше, чем в Python и JS
◾️ Junior-специалист может рассчитывать на зарплату от 90 000 рублей, а middle-специалистам платят в среднем 150 000 рублей.

Чтобы ощутить всю силу Java, записывайтесь на курс «Профессия Java-разработчик» от Skillbox : https://clc.am/M8MrKA
📕 25 лучших книг для программистов

Список наиболее часто рекомендуемых книг о программировании, составлен по результатам анализа упоминаний в интернет-публикациях. Книги об алгоритмах, чистом коде, паттернах проектирования, а также пособия для развития soft skills и прохождения собеседований.

https://proglib.io/w/d604cfd8
В реализации класса ArrayList есть следующие поля: Object[] elementData, int size. Объясните, зачем хранить отдельно size, если всегда можно взять elementData.length?

Размер массива elementData представляет собой вместимость (capacity) ArrayList, которая всегда больше переменной size - реального количества хранимых элементов. При необходимости вместимость автоматически возрастает.
Почему LinkedList реализует и List, и Deque?

LinkedList позволяет добавлять элементы в начало и конец списка за константное время, что хорошо согласуется с поведением интерфейса Deque.
Может ли статический метод быть переопределён или перегружен?

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

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

В целом, к статическим полям и методам рекомендуется обращаться через имя класса, а не объект.
Ты опытный джавист, который устал сидеть дома за компом? Приходи на дискуссию о продуктовой Java-разработке в бар! Твоими собеседниками будут СТО Райффайзенбанка Сергей Мельников и ведущие подкаста «Мы обречены» — разработчик Фил Ранжир и журналист Артем Малышев.

На CIB OPEN BAR мы обсудим:
— Как не напороться на мучительный легаси-код и душную бюрократию?
— Правда ли, что теперь разработчики ищут стабильности?
— Как не перепутать стабильность со стагнацией?
— Что сейчас ценнее на рынке: умение писать идеальный код или вникать в сложную предметную область?

Ждем тебя 20 июля в 20:00 в Powerhouse Moscow. Участие бесплатное. Регистрируйся: https://clck.ru/WBgAi
Java Performance (2020)
Автор: Scott Oaks
Количество страниц: 450

Кодинг и тестирование обычно рассматриваются как отдельные области. В этой практической книге эксперт по Java Скотт Оукс придерживается подхода, согласно которому любой, кто работает с Java, должен понимать, как работает код в виртуальной машине, включая настройки, которые могут повысить производительность. Данное обновленное второе издание поможет вам получить глубокие знания о производительности приложений Java, используя как JVM, так и платформу Java.

Скачать книгу