Java библиотека – Telegram
Java библиотека
31.5K subscribers
2.38K photos
91 videos
10 files
2.19K links
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
Download Telegram
Что произойдёт, если в блоке инициализации возникнет исключительная ситуация?

Для нестатических блоков инициализации, если выбрасывание исключения прописано явным образом требуется, чтобы объявления этих исключений были перечислены в throws всех конструкторов класса. Иначе будет ошибка компиляции. Для статического блока выбрасывание исключения в явном виде, приводит к ошибке компиляции.

В остальных случаях, взаимодействие с исключениями будет проходить так же, как и в любом другом месте. Класс не будет инициализирован, если ошибка происходит в статическом блоке и объект класса не будет создан, если ошибка возникает в нестатическом блоке.
👍17
👩‍💻 DSL и конфигураторы контекста безопасности - Spring Security в деталях

В этом ролике автор демонстрирует создание и использование собственных DSL для настройки контекста безопасности приложения, благодаря которым можно вносить изменения в контекст безопасности на этапах инициализации и настройки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Java Bean

JavaBeans - это стандартный подход к созданию переносимых и повторно используемых компонентов.
Они представляют собой классы, которые следуют определенным соглашениям и обеспечивают удобный способ управления состоянием и поведением объектов.

Основные характеристики JavaBeans:

1. Класс должен быть публичным и иметь открытый конструктор без аргументов.
2. Приватные поля класса должны быть доступны с помощью геттеров и сеттеров (
getter и setter методы).
3. Класс должен быть сериализуемым, то есть должен реализовывать интерфейс
Serializable.

JavaBeans также могут иметь дополнительные свойства, такие как события и методы уведомления, которые позволяют другим компонентам реагировать на изменения состояния.
👍20
Погружение в паттерны проектирования (2021) PDF + Архив с примерами кода

Книга «Погружение в Паттерны Проектирования» описывает 22 классических паттерна проектирования, а также 8 принципов проектирования, на которых они основаны.

Каждая глава начинается с разбора определённой проблемы, возникающей при проектировании, и шаг за шагом подводит читателя к решению с помощью одного из паттернов.
Далее идёт детальный разбор структуры паттерна и его вариаций, а также пример реализации в коде.
Затем, читатель знакомится с кейсами использования паттерна и учится воспроизводить паттерн по шагам.
Заканчиваются главы обсуждением плюсов и минусов паттерна, а также обзором его связей с другими паттернами.
👍163🔥2
👩‍💻 Рынок Java в 2023, требования к кандидатам

В этом видео, автор рассказывает о рынке Java вакансий. Требования к кандидатам.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Java для чайников, 7-е издание (2019) PDF

Перед вами бестселлер для начинающих, посвященный Java 9 — новой версии самого мощного объектно-ориентированного языка программирования. Программа, написанная на Java, будет выполняться практически на любом компьютере, ноутбуке или портативном устройстве. Освоив Java, вы сможете создавать мультимедийные приложения, предназначенные для любой платформы. Независимо от того, на каком языке вы программировали раньше (и даже если вы никогда прежде не программировали), вы быстро научитесь создавать современные кроссплатформенные приложения, используя возможности Java 9.
👍15
Какое исключение выбрасывается при возникновении ошибки в блоке инициализации класса?

Если возникшее исключение - наследник RuntimeException:
• для статических блоков инициализации будет выброшено java.lang.ExceptionInInitializerError;
• для нестатических будет проброшено исключение-источник.
Если возникшее исключение - наследник Error, то в обоих случаях будет выброшено java.lang.Error. Исключение: java.lang.ThreadDeath - смерть потока. В этом случае никакое исключение выброшено не будет.
👍15
Может ли статический метод быть переопределён или перегружен?

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

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

В целом, к статическим полям и методам рекомендуется обращаться через имя класса, а не объект.
👍271🔥1
Можем ли мы перегрузить методы по возвращаемому типу?

Мы не можем перегружать по возвращаемому типу. Это поведение аналогично C++.
👍33
Шаблоны проектирования для облачной среды (2020)

Эта книга посвящена облачным платформам, которые обеспечивают многие преимущества – практически нулевое время простоя, бесконечную масштабируемость, короткие циклы обратной связи, отказоустойчивость и контроль затрат. Применяя конструкции для облачной среды, разработчики могут создавать гибкие, легко адаптируемые, веб-масштабируемые распределенные приложения, которые обрабатывают огромный пользовательский трафик и объем данных.

Автор рассматривает методы и шаблоны, ориентированные на приложения для облачной среды – с учетом их жизненного цикла, управления конфигурацией в масштабах облака, обновления без простоев.

Для работы с книгой читателю необходимы базовые навыки в области проектирования программного обеспечения и умение понимать код, написанный на Java или похожем языке.

Издание будет полезно всем, кого интересует развертывание систем на различных облачных платформах.
👍12🔥2
Pro Jakarta EE 10: Open Source Enterprise Java-based Cloud-native Applications Development (2023) True PDF. ePUB

Welcome to your in-depth professional guide to the open source Eclipse Jakarta EE 10 platform. This book will help you build more complex native enterprise Java-based cloud and other applications that can run in corporate and other mission-critical settings. The majority of the key Jakarta EE 10 APIs or features are dissected in this book, including JSF, JSP, JPA, CDI, REST, Microprofiles, WebSockets, and many more. Along the way, various open source Apache, Eclipse, and other projects are integrated and used for more complete workflows and treatment in general

Jakarta EE 10 comes with a significant number of improvements over Java EE 9 technologies and adopts a series of new technologies. This book starts out with a concise development procedure proposal and shows NetBeans as an alternative IDE to Eclipse.
👍122🔥1
Могут ли нестатические методы перегрузить статические?

Да. В итоге получится два разных метода. Статический будет принадлежать классу и будет доступен через его имя, а нестатический будет принадлежать конкретному объекту и доступен через вызов метода этого объекта.
👍24🔥61
👩‍💻 Docker Compose и Spring Boot 3.1 👩‍💻

Наверняка вам приходилось запускать разрабатываемое приложение для какого-то ручного тестирования разрабатываемых функций. А для этого, как правило, нужно некоторое окружение: базы данных, серверы кэша, брокеры очередей сообщений и т.д.
И чтобы не разворачивать это всё вручную, можно использовать контейнеры, а разработчики Spring Boot предлагают интеграцию Spring Boot и Docker Compose, благодаря которой использование контейнеров требует минимум кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥64
Стильный Java. Код который работает всегда и везде, Год 2021, Формат: Издательский pdf+epub

В современном мире разработки успешность приложения уже не определяется параметром «просто работает». Хороший программист должен знать возможности языка, практические приемы проектирования и платформенные средства для достижения максимальной производительности и жизнеспособности программ. Эта книга написана для разработчиков, которые хотят создавать качественный софт. Затронуты все ключевые показатели ПО: скорость, затраты памяти, надежность, удобочитаемость, потоковая безопасность, универсальность и элегантность. Реальные задачи и прикладные примеры кода на Java помогут надежно усвоить концепции.

Пройдя все этапы создания центрального проекта книги, вы сможете уверенно выбрать правильный путь оптимизации собственного приложения.
👍143🔥2
👩‍💻 Testcontainers и Spring Boot 3.1

Ещё одним нововведением в Spring Boot 3.1, связанным с использованием контейнеров, стала интеграция с Testcontainers - фреймворком для работы с контейнерами при тестировании.

Интеграция позволяет минимизировать количество кода, требуемого для описания контейнеров и подключения к сервисам, запущенным в них, а так же использовать Testcontainers для ручного тестирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21😁1
Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?

• При переопределении метода нельзя сузить модификатор доступа к методу (например с public в MainClass до private в Class extends MainClass).
• Изменить тип возвращаемого значения при переопределении метода нельзя, будет ошибка attempting to use incompatible return type.
• Можно сузить возвращаемое значение, если они совместимы.
Например:

public class Animal {

public Animal eat() {
System.out.println("animal eat");
return null;
}

public Long calc() {
return null;
}

}
public class Dog extends Animal {

public Dog eat() {
return new Dog();
}
/*attempting to use incompatible return type
public Integer calc() {
return null;
}
*/
}
👍221🔥1🎉1
Spring Boot 2. Лучшие практики для профессионалов (2020) PDF

Хотите повысить свою эффективность в разработке корпоративных и облачных Java-приложений?
Увеличьте скорость и простоту разработки микросервисов и сложных приложений, избавившись от забот по конфигурации Spring.
Используйте Spring Boot 2 и такие инструменты фреймворка Spring 5, как WebFlux, Security, Actuator, а также фреймворк Micrometer, предоставляющий новый способ сбора метрик.
В этой книге: настройка и использование Spring Boot 2; работа с нефункциональными требованиями с помощью Spring Boot Actuator; разработка веб-приложений с помощью Spring Boot 2; постоянное хранение данных с использованием JDBC, JPA и баз данных NoSQL; обмен сообщениями с помощью JMS, RabbitMQ и WebSockets; краткое знакомство с проектами Spring Cloud; тестирование, микросервисы и развертывание в облачной среде с использованием Spring Boot 2; расширение Spring Boot путем создания своего собственного «стартового набора» и добавления функциональности @ Enable.
👍113🔥1
👩‍💻 Простой Telegram-бот на Java и Spring Boot 👩‍💻

В данном видеоуроке автор показывает как можно разработать свой собственный Telegram-бот на Java с использованием Spring Boot. После просмотра данного видео, вы сможете создать свой собственный Telegram-бот, но уже с более сложным функционалом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍273
Возможно ли при переопределении метода изменить: модификатор доступа, возвращаемый тип, тип аргумента или их количество, имена аргументов или их порядок; убирать, добавлять, изменять порядок следования элементов секции throws?

При переопределении метода сужать модификатор доступа не разрешается, т.к. это приведёт к нарушению принципа подстановки Барбары Лисков. Расширение уровня доступа возможно.

Можно изменять все, что не мешает компилятору понять какой метод родительского класса имеется в виду:

• Изменять тип возвращаемого значения при переопределении метода разрешено только в сторону сужения типа (вместо родительского класса - наследника).
• При изменении типа, количества, порядка следования аргументов вместо переопределения будет происходить overloading (перегрузка) метода.
• Секцию throws метода можно не указывать, но стоит помнить, что она остаётся действительной, если уже определена у метода родительского класса. Так же, возможно добавлять новые исключения, являющиеся наследниками от уже объявленных или исключения RuntimeException. Порядок следования таких элементов при переопределении значения не имеет.
👍233