С 06.09 по 12.09
Предыдущий пост(с 30.08 по 05.09)
Воскресный мотивационный пост:
Использование LLM в работе - мошенничество или обязательное условие?
Выбранная голосованием тема:
Kubernetes введение
Запись встреч/видео:
не было.
Обучающие статьи:
Docker:
docker-compose.yaml и его архитектура
Управление сборкой и архитектурой
CI/CD и финальный проект: production-ready Java-приложение с Docker
Java:
Интерфейсы. Default и static методы
final: переменные, методы, классы
Полезные статьи и видео:
Как я создал идеальный REST API — микросервис инцидентов на Java и Spring
Нововведения Java 25
Как и всегда, задачи можно найти под тегом - #Tasks, вопросы с собеседований - #собеседование
#memory
Предыдущий пост(с 30.08 по 05.09)
Воскресный мотивационный пост:
Использование LLM в работе - мошенничество или обязательное условие?
Выбранная голосованием тема:
Kubernetes введение
Запись встреч/видео:
не было.
Обучающие статьи:
Docker:
docker-compose.yaml и его архитектура
Управление сборкой и архитектурой
CI/CD и финальный проект: production-ready Java-приложение с Docker
Java:
Интерфейсы. Default и static методы
final: переменные, методы, классы
Полезные статьи и видео:
Как я создал идеальный REST API — микросервис инцидентов на Java и Spring
Нововведения Java 25
Как и всегда, задачи можно найти под тегом - #Tasks, вопросы с собеседований - #собеседование
#memory
👍3🔥2
Ива́н Матве́евич Виногра́дов (2 (14) сентября 1891 — 20 марта 1983, Москва) — советский математик, академик АН СССР (1929) по Отделению физико-математических наук (математика).
1959 — космический аппарат Луна-2 впервые в мире достиг поверхности Луны.
2000 — корпорация Майкрософт выпустила операционную систему Windows Milennium Edition.
2007 — с космодрома Танэгасима запущена японская АМС Kaguya, предназначенная для исследования Луны.
2015 — открытие гравитационных волн.
#Biography #Birth_Date #Events #14Сентября
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Росс Андерсон (англ. Ross J. Anderson, 15 сентября 1956 — 28 марта 2024, Кембридж) — британский учёный, автор более двухсот статей, консультант по инженерной безопасности. Профессор инженерии безопасности в Кембриджском университете. Его достижения в области криптографии включают в себя разработку шифров, обнаружение слабостей во многих системах безопасности и алгоритмах. Является сооснователем списка рассылки Uk-Crypto.
Анируд Девган (родился 15 сентября 1969 года) — индийско-американский учёный в области компьютерных наук и руководитель бизнеса. Как учёный, Девган известен своим вкладом в автоматизацию электронного проектирования , в частности, в моделирование схем , физическое проектирование и вывод , статистическое проектирование и оптимизацию , а также в верификацию и аппаратные платформы.
1947 — Основание ACM (Association for Computing Machinery) — организация, объединяющая компьютерных учёных и инженеров, официально создана.
1968 — в СССР запущена космическая станция «Зонд-5», которая впервые в мире совершила облёт Луны с последующей мягкой посадкой на Землю.
1997 — Зарегистрирован домен Google.com.
#Biography #Birth_Date #Events #15Сентября
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Основы ООП в Java
Глава 6. Ключевые модификаторы ООП
static: поля, методы, блоки инициализации
Модификатор static означает "статический" и привязывает элемент к классу, а не к экземпляру (объекту). Static-элементы существуют в одном экземпляре на класс, независимо от количества объектов.
Зачем нужен static:
Общие данные: Для переменных, общих для всех объектов (например, счетчик экземпляров).
Утилиты: Для методов, не зависящих от состояния объекта (например, Math.sqrt()).
Эффективность: Избежать создания объектов для вызова методов.
Инициализация: Блоки для выполнения кода при загрузке класса.
Static — инструмент для класс-уровня логики в ООП, но не злоупотребляйте: он может нарушать инкапсуляцию.
Static поля: Общие переменные класса
Static поля (class variables) принадлежат классу и делятся всеми объектами. Они инициализируются при загрузке класса.
Синтаксис:
Доступ: Через ClassName.fieldName или объект.fieldName (но рекомендуется через класс).
Пример:
Использование:
Нюанс: Static поля инициализируются по умолчанию (0 для чисел, null для объектов). Можно изменить в static блоке.
Static методы: Утилиты класса
Static методы принадлежат классу и вызываются без объекта. Они не имеют доступа к non-static полям/методам (нет this).
Синтаксис:
Пример:
Вызов:
Нюанс: Static методы не override — это method hiding. Вызов зависит от типа ссылки, не объекта.
Static блоки инициализации: Код при загрузке класса
Static блоки — код, выполняющийся один раз при загрузке класса (перед конструкторами).
Синтаксис:
Пример:
Нюанс: Несколько блоков выполняются в порядке объявления. Полезно для сложной инициализации static полей (например, загрузка конфигурации).
Все нюансы static
Доступ и видимость:
Static элементы доступны без объекта, но non-static — нет из static контекста.
Нюанс: Из static метода нельзя this.field или non-static method() — ошибка.
Наследование:
Static поля/методы наследуются, но не override — hiding. ChildClass.staticMethod() скрывает ParentClass.staticMethod().
Нюанс: Вызов через ссылку: Animal a = new Dog(); a.staticMethod() — вызовет Animal.version (зависит от типа ссылки).
Инициализация:
Static поля/блоки инициализируются при первой загрузке класса (class loading).
Нюанс: Lazy loading — не инициализируется, пока не используется.
Ошибки:
Доступ к non-static из static — ошибка компиляции.
Static в интерфейсах: Да, с Java 8 (static методы).
Static классы: Nested классы могут быть static (не зависят от внешнего объекта).
Дизайн:
Избегайте mutable static полей — проблемы в многопоточности.
Используйте для констант (static final), утилит (Math), singleton.
Нюанс: Static блоки для JDBC драйверов или логирования.
Многопоточность: Static поля общие — используйте synchronization для изменений.
Как создать это в IntelliJ IDEA
Static поле/метод: Добавьте static — IDE подскажет доступ.
Static блок: Напишите static {} — IDE форматирует.
Тестирование: Вызовите static через класс — IDE автодополнит.
Полезные советы для новичков
Константы: public static final для глобальных.
Утилиты: Static методы для helper-классов.
Избегайте состояния: Static поля — только immutable.
Тестируйте: Проверьте доступ из static/non-static.
Ресурсы: Oracle Tutorials on Static Members.
#Java #для_новичков #beginner #OOP #static
Глава 6. Ключевые модификаторы ООП
static: поля, методы, блоки инициализации
Модификатор static означает "статический" и привязывает элемент к классу, а не к экземпляру (объекту). Static-элементы существуют в одном экземпляре на класс, независимо от количества объектов.
Зачем нужен static:
Общие данные: Для переменных, общих для всех объектов (например, счетчик экземпляров).
Утилиты: Для методов, не зависящих от состояния объекта (например, Math.sqrt()).
Эффективность: Избежать создания объектов для вызова методов.
Инициализация: Блоки для выполнения кода при загрузке класса.
Static — инструмент для класс-уровня логики в ООП, но не злоупотребляйте: он может нарушать инкапсуляцию.
Static поля: Общие переменные класса
Static поля (class variables) принадлежат классу и делятся всеми объектами. Они инициализируются при загрузке класса.
Синтаксис:
static type fieldName = value;
Доступ: Через ClassName.fieldName или объект.fieldName (но рекомендуется через класс).
Пример:
public class Counter {
public static int count = 0; // Static поле
public Counter() {
count++; // Увеличивает общее значение
}
}
Использование:
public class Main {
public static void main(String[] args) {
new Counter();
new Counter();
System.out.println(Counter.count); // 2
}
}
Нюанс: Static поля инициализируются по умолчанию (0 для чисел, null для объектов). Можно изменить в static блоке.
Static методы: Утилиты класса
Static методы принадлежат классу и вызываются без объекта. Они не имеют доступа к non-static полям/методам (нет this).
Синтаксис:
static returnType methodName(params) { ... }
Доступ: ClassName.methodName().
Пример:
public class MathUtils {
public static int add(int a, int b) {
return a + b;
}
}
Вызов:
int sum = MathUtils.add(5, 3); // 8
Нюанс: Static методы не override — это method hiding. Вызов зависит от типа ссылки, не объекта.
Static блоки инициализации: Код при загрузке класса
Static блоки — код, выполняющийся один раз при загрузке класса (перед конструкторами).
Синтаксис:
static {
// Код
}
Пример:
public class Config {
public static String appName;
static {
appName = "MyApp"; // Инициализация при загрузке
System.out.println("Класс загружен!");
}
}
Нюанс: Несколько блоков выполняются в порядке объявления. Полезно для сложной инициализации static полей (например, загрузка конфигурации).
Все нюансы static
Доступ и видимость:
Static элементы доступны без объекта, но non-static — нет из static контекста.
Нюанс: Из static метода нельзя this.field или non-static method() — ошибка.
Наследование:
Static поля/методы наследуются, но не override — hiding. ChildClass.staticMethod() скрывает ParentClass.staticMethod().
Нюанс: Вызов через ссылку: Animal a = new Dog(); a.staticMethod() — вызовет Animal.version (зависит от типа ссылки).
Инициализация:
Static поля/блоки инициализируются при первой загрузке класса (class loading).
Нюанс: Lazy loading — не инициализируется, пока не используется.
Ошибки:
Доступ к non-static из static — ошибка компиляции.
Static в интерфейсах: Да, с Java 8 (static методы).
Static классы: Nested классы могут быть static (не зависят от внешнего объекта).
Дизайн:
Избегайте mutable static полей — проблемы в многопоточности.
Используйте для констант (static final), утилит (Math), singleton.
Нюанс: Static блоки для JDBC драйверов или логирования.
Многопоточность: Static поля общие — используйте synchronization для изменений.
Как создать это в IntelliJ IDEA
Static поле/метод: Добавьте static — IDE подскажет доступ.
Static блок: Напишите static {} — IDE форматирует.
Тестирование: Вызовите static через класс — IDE автодополнит.
Полезные советы для новичков
Константы: public static final для глобальных.
Утилиты: Static методы для helper-классов.
Избегайте состояния: Static поля — только immutable.
Тестируйте: Проверьте доступ из static/non-static.
Ресурсы: Oracle Tutorials on Static Members.
#Java #для_новичков #beginner #OOP #static
👍3
Каким Вы видите свое будущее как программиста?
Anonymous Poll
12%
Я буду владельцем крупной IT-компании 🏝
24%
Я буду работать в крупной IT-компании, как минимум на высокой должности 🧑💻
18%
Я запущу свой проект, потом его дорого продам и буду кайфовать на дивиденды 😋
39%
Я хочу просто о стабильную работу со средней зарплатой, чтобы хватало на все для моей семьи ❤️
6%
Свой вариант в комментариях 📞
👍1
Что выведет код?
#Tasks
public class Task150925 {
static int x = 5;
static {
x = 10;
y = 20;
}
static int y = 15;
public static void main(String[] args) {
System.out.println(x + " " + y);
}
}
#Tasks
🤯2
👍4🤯2
Please open Telegram to view this post
VIEW IN TELEGRAM
Сетка
Java for Beginner. Канал в Сетке
Канал для новичков в Java
👍3
Вопрос с собеседований
Что такое virtual threads в Java?🤓
Ответ:
Virtual threads (введены в Java 21) — легковесные потоки, управляемые JVM, а не ОС. Они дешевы в создании и позволяют масштабировать приложения с тысячами потоков.
Пример:
Thread vt = Thread.ofVirtual().start(() -> System.out.println("Virtual thread"));
В отличие от платформенных потоков, виртуальные не привязаны к OS-thread, снижая overhead. Полезны для I/O-bound задач.
#собеседование
Что такое virtual threads в Java?
Ответ:
Virtual threads (введены в Java 21)
Пример:
Thread vt = Thread.ofVirtual().start(() -> System.out.println("Virtual thread"));
В отличие от платформенных потоков, виртуальные не привязаны к OS-thread, снижая overhead. Полезны для I/O-bound задач.
#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5