13 и 14 мая в Крокус Экспо состоится крупнейшая в России IT-конференция HighLoad++ Foundation: https://bit.ly/3u0dBeO
HighLoad++ существует более 10 лет, ежегодно на конференцию собирается 1000-3000 разработчиков нагруженных систем.Здесь можно познакомиться и получить консультацию эксперта практически по любому вопросу, пообщаться с создателями технологий, на которых вы работаете.
В этот раз мы готовим к выступлению более 150 докладчиков. Будет отдельный трек о Golang-разработке, OpenSource-трибуна и доклады о том, как решаются задачи в enterprise-секторе.
Где разрешена инициализация статических/нестатических полей?
• Статические поля можно инициализировать при объявлении, в статическом или нестатическом блоке инициализации.
• Нестатические поля можно инициализировать при объявлении, в нестатическом блоке инициализации или в конструкторе.
Один из инструментов, необходимых Сloud Native специалисту — Well-Architected Framework. Начни знакомство с этой методикой на открытом вебинаре в OTUS21 марта в 20:00 (мск).
Занятие проведет Олег Кожанов
Senior Technical Program Manager в Amazon Germany.
📚 Что вас ждет на занятии?
• Рассмотрим причины появления WAF.
• Посмотрим WAF с точки зрения AWS, Azure и GCP, а так же 5 «столпов» WAF.
• Рассмотрим требования к программному решения с точки зрения эффективной производительности.
Занятие является частью онлайн-курса «Cloud Solution Architecture». Участие позволит вам оценить качество программы и познакомиться с преподавателем.
🎯Чтобы посетить открытый урок, зарегистрируйтесь по ссылке: https://otus.pw/7AlnP/
Создание телеграмм-бота (Spring Boot, Kafka, PostgreSQL), часть вторая
Всем привет, это вторая часть создания телеграмм-бота, в ней мы реализуем Kafka Consumer, который будет ловить любые колебания в силе и выдавать нам всю информацию о действиях пользователя.
Читать статью
Можно ли объявить метод абстрактным и статическим одновременно?
Нет. В таком случае компилятор выдаст ошибку: "Illegal combination of modifiers: ‘abstract’ and ‘static’". Модификатор abstract говорит, что метод будет реализован в другом классе, а static наоборот указывает, что этот метод будет доступен по имени класса.
Head First. Программирование для Android. 2-е изд. (2018) PDF
Система Android покорила мир. Все хотят иметь планшет или смартфон, а устройства на базе Android - самые популярные в мире. В этой книге мы научим вас разрабатывать и запускать приложения.
Вам уже пришла в голову гениальная идея? Дело за малым - воплотить ее в жизнь.
Вы научитесь правильно формировать структуру приложений, проектировать гибкие и интерактивные интерфейсы, запускать службы в фоновом режиме, обеспечивать работу на разных устройствах и многое другое.
Все, что от вас требуется - базовые знания Java.
Создание телеграм-бота (Spring Boot, Kafka, PostgreSQL), часть первая
Всем привет, данная статья является, своего рода моей первой, но все же постараюсь максимально просто рассказать вам о том, как создать бота, прикрутив к нему все обещанные выше свистелки-тарахтелки.
Статьи будут разделены на 2 части, первая часть - создание основного бота с оправкой логов (Kafka Producer) и записью их в БД, вторая часть - обработка всех логов (Kafka Consumer).
Читать статью
⁉️Какие бывают стили программирования на Java?
🗓 23 марта в 20:00 состоится открытый урок «Объектно-ориентированное и функциональное программирование». На вебинаре вместе с практикующим экспертом поговорим о стилях программирования и необходимости каждого из них.
🍀Разберём основные принципы объектно-ориентированного стиля: инкапсуляция, наследование, полиморфизм. А еще узнаем, какие возможности функционального стиля предоставляет язык Java.
💪🏻 Используйте эту возможность, чтобы попробовать онлайн-курс «Специализация Java-разработчик» и узнать о нем больше.
📌Регистрация на занятие:https://otus.pw/QwRW/
Как получить доступ к переопределенным методам родительского класса?
С помощью ключевого слова super мы можем обратиться к любому члену родительского класса - методу или полю, если они не определены с модификатором private.
super.method();
Android Studio Bumble Bee Essentials - Java Edition (2022) ePUB
Fully updated for Android Studio Bumble Bee, the goal of this book is to teach the skills necessary to develop Android-based applications using the Java programming language.
Beginning with the basics, this book provides an outline of the steps necessary to set up an Android development and testing environment. An overview of Android Studio is included covering areas such as tool windows, the code editor, and the Layout Editor tool. An introduction to the architecture of Android is followed by an in-depth look at the design of Android applications and user interfaces using the Android Studio environment.
Chapters are also included covering the Android Architecture Components including view models, lifecycle management, Room database access, the Database Inspector, app navigation, live data, and data binding.
Возможно ли при переопределении метода изменить: модификатор доступа, возвращаемый тип, тип аргумента или их количество, имена аргументов или их порядок; убирать, добавлять, изменять порядок следования элементов секции throws?
При переопределении метода сужать модификатор доступа не разрешается, т.к. это приведёт к нарушению принципа подстановки Барбары Лисков. Расширение уровня доступа возможно.
Можно изменять все, что не мешает компилятору понять какой метод родительского класса имеется в виду:
• Изменять тип возвращаемого значения при переопределении метода разрешено только в сторону сужения типа (вместо родительского класса - наследника).
• При изменении типа, количества, порядка следования аргументов вместо переопределения будет происходить overloading (перегрузка) метода.
• Секцию throws метода можно не указывать, но стоит помнить, что она остаётся действительной, если уже определена у метода родительского класса. Так же, возможно добавлять новые исключения, являющиеся наследниками от уже объявленных или исключения RuntimeException. Порядок следования таких элементов при переопределении значения не имеет.
Project Loom: новое слово в параллелизме
Loom — это проект, развиваемый в рамках OpenJDK, призванный устранить ограничения традиционной модели параллелизма, предлагая более легкую альтернативу потокам.
Решение состоит в том, чтобы ввести виртуальную многопоточность, которая позволит JVM более эффективно управлять взаимосвязью между ними. Это то, что проект Loom намеревается сделать, представив новый класс виртуальных потоков.
Читать статью
Grokking Streaming Systems: Real-time event processing (2022) True PDF
Grokking Streaming Systems helps you unravel what streaming systems are, how they work, and whether they’re right for your business. Written to be tool-agnostic, you’ll be able to apply what you learn no matter which framework you choose. You’ll start with the key concepts and then work your way through increasingly complex examples, including tracking a real-time count of IoT sensor events and detecting fraudulent credit card transactions in real-time. You’ll even be able to easily experiment with your own streaming system, by downloading the custom-built and super-simplified streaming framework designed for this book. By the time you’re done, you’ll be able to easily assess the capabilities of streaming frameworks, and solve common challenges that arise when building streaming systems.
Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?
• При переопределении метода нельзя сузить модификатор доступа к методу (например с 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;
}
*/
}
Аннотации в Java и их обработка
Аннотация — это специальная конструкция языка, связанная с классом, методом или переменной, предоставляющая программе дополнительную информацию, на основе которой программа может предпринять дальнейшие действия или реализовать дополнительную функциональность, такую как генерация кода, проверка ошибок и т. д.
В этой статье мы обсудим назначение стандартных аннотаций, а также рассмотрим на практическом примере создание и обработку своих аннотаций.
Читать статью
Reactive Systems in Java (2022) True PDF
Reactive systems and event-driven architecture are becoming essential to application design–and companies are taking note. Reactive systems ensure applications are responsive, resilient, and elastic no matter what failures, latency, or other errors may be occurring, while event-driven architecture offers a flexible and composable option for distributed systems. This practical resource helps you bring these approaches together using Quarkus, a Java framework that greatly simplifies the work developers must undertake for cloud deployments. This book covers how Quarkus 2.0 reactive features allow the smooth development of reactive systems.