Java for Beginner
742 subscribers
708 photos
196 videos
12 files
1.14K links
Канал от новичков для новичков!
Изучайте Java вместе с нами!
Здесь мы обмениваемся опытом и постоянно изучаем что-то новое!

Наш YouTube канал - https://www.youtube.com/@Java_Beginner-Dev

Наш канал на RUTube - https://rutube.ru/channel/37896292/
Download Telegram
🗓 История IT-технологий сегодня — 14 сентября


ℹ️ Кто родился в этот день

Ива́н Матве́евич Виногра́дов (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
Forwarded from ChatRoom (Java for Beginner) (Первожрец Java)
Когда рад уходу подписчика
🔥4
Forwarded from ChatRoom (Java for Beginner) (Первожрец Java)
Че встречаться будем сегодня?)
👍3
Ссылка на встречу у бота - @JFB_admin_bot
🗓 История IT-технологий сегодня — 15 сентября


ℹ️ Кто родился в этот день

Росс Андерсон (англ. 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) принадлежат классу и делятся всеми объектами. Они инициализируются при загрузке класса.


Синтаксис:
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
Что выведет код?

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
Создал канал в сетке!

Присоединяйтесь! 🙂

https://set.ki/channel/35sLVoe
Please open Telegram to view this post
VIEW IN TELEGRAM
👍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 задач.


#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5