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

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

Наш канал на RUTube - https://rutube.ru/channel/37896292/
Download Telegram
Что такое ExecutorCompletionService? 🤓

Ответ:
ExecutorCompletionService
оборачивает Executor и позволяет получать результаты задач по мере их завершения.

Пример:
ExecutorService executor = Executors.newFixedThreadPool(2);
CompletionService<String> service = new ExecutorCompletionService<>(executor);
service.submit(() -> "Task1");
System.out.println(service.take().get()); // Task1

Полезен для асинхронных задач с разным временем выполнения.


#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🗓 История IT сегодня — 15 августа


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

Лесли Джон Комри (15 августа 1893 г. – 11 декабря 1950 г.) Астроном и пионер механической/механографической автоматизации вычислений; один из ранних организаторов коммерческих вычислительных услуг и автоматизации таблиц — предтеча компьютерной обработки данных.

Пьер Буге́р (также Буге; фр. Pierre Bouguer; 16 февраля 1698, Круазик (Croisic), Франция — 15 августа 1758, Париж)французский физик, математик и астроном, основатель фотометрии. Известен трудами по теории корабля, геодезии, гидрографии и другим отраслям знания. Имя Бугера внесено в список 72 величайших учёных Франции, размещённый на первом этаже Эйфелевой башни.


🌐 Знаковые события

1877американский изобретатель Томас Эдисон в письме президенту телеграфной компании Питтсбурга предложил в качестве приветствия при общении по телефону использовать слово «hello» (в России оно трансформировалось в «алло»). В этот же день Эдисон произвёл первую запись звука на свой фонограф — песню «Mary Had a Little Lamb» («У Мэри был барашек»).

1977радиотелескоп Big Ear (Огайо, США) зафиксировал "Wow! signal" — один из самых известных возможно внеземных радиоимпульсов.

1998компания Apple начала поставки iMac G3, модели, которая кардинально изменила дизайн и восприятие компьютеров в массовом сознании.

15 августа (дата отмечается как Computer Science Day) — день, посвящённый дате запуска первого массового электронного компьютера ENIAC.


#Biography #Birth_Date #Events #15Августа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Основы ООП в Java

Глава 1. Классы и объекты

Состояние и поведение: поля и методы


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

Java — это чисто объектно-ориентированный язык, где всё (кроме примитивных типов) является объектом. ООП помогает писать масштабируемый код, который легко расширять и поддерживать.
Классы и объекты: Основные понятия


Класс: Это шаблон или "чертеж" для создания объектов. Класс определяет, какие данные (состояние) и действия (поведение) будут у объектов.
Объект: Это экземпляр класса — конкретная реализация шаблона. Например, класс Car может описывать автомобили в общем, а объект — конкретный автомобиль, такой как "красный Ford с номером ABC123".
Пример: Представьте класс Person (Человек). Он может иметь состояние (имя, возраст) и поведение (ходить, говорить). Объекты этого класса — конкретные люди, такие как "Алексей, 35 лет".



Состояние: Поля (Fields)

Состояние объекта определяется полями — переменными внутри класса, которые хранят данные. Поля описывают характеристики объекта.


Объявление полей: Поля объявляются в теле класса, вне методов. Они могут быть примитивными типами (int, double) или ссылочными (String, другие классы).

Модификаторы доступа: Чтобы защитить данные, используйте модификаторы:
private: Доступны только внутри класса (рекомендуется для полей).
public: Доступны везде (избегайте для полей, чтобы сохранить инкапсуляцию).
protected: Доступны в классе и подклассах.
Без модификатора (default): Доступны в пакете.


Пример класса с полями:

public class Person {
// Поля (состояние)
private String name; // Имя человека
private int age; // Возраст человека
}

Здесь name и age — поля, хранящие состояние объекта.
Они private, чтобы внешний код не мог напрямую изменять их (инкапсуляция).



Поведение: Методы (Methods)

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

Объявление методов: Методы имеют сигнатуру: модификатор, тип возвращаемого значения, имя, параметры в скобках, тело в фигурных скобках.

Типы методов:
Конструкторы: Специальные методы для инициализации объектов. Имя совпадает с именем класса, нет типа возвращаемого значения.
Обычные методы: Выполняют действия, могут возвращать значение или нет (void).
Геттеры и сеттеры: Методы для чтения (get) и записи (set) полей, чтобы обеспечить контролируемый доступ.


Пример с методами:
public class Person {
private String name;
private int age;

// Конструктор (инициализирует состояние)
public Person(String name, int age) {
this.name = name; // this — ссылка на текущий объект
this.age = age;
}

// Метод (поведение): Вывод информации
public void introduce() {
System.out.println("Привет, меня зовут " + name + ", мне " + age + " лет.");
}

// Геттер для возраста
public int getAge() {
return age;
}

// Сеттер для возраста (с проверкой)
public void setAge(int age) {
if (age > 0) {
this.age = age;
} else {
System.out.println("Возраст не может быть отрицательным!");
}
}
}

Конструктор: Person(String name, int age) устанавливает начальное состояние.
Метод introduce(): Выводит информацию (поведение).
Геттер getAge(): Возвращает значение поля.
Сеттер setAge(int age): Изменяет поле с проверкой (инкапсуляция).



#Java #для_новичков #beginner #class #object
👍4
Создание и использование объектов

Объекты создаются с помощью оператора new.

Пример в методе main:

public class Main {
public static void main(String[] args) {
// Создание объекта
Person person1 = new Person("Алексей", 35);

// Вызов метода
person1.introduce(); // Вывод: Привет, меня зовут Алексей, мне 35 лет.

// Использование геттера и сеттера
System.out.println("Текущий возраст: " + person1.getAge());
person1.setAge(36);
System.out.println("Новый возраст: " + person1.getAge());
}
}

new Person("Алексей", 35): Создает объект и вызывает конструктор.
person1.introduce(): Вызывает метод объекта.



Как создать это в IntelliJ IDEA


Создайте класс:

В проекте щелкните правой кнопкой на src → New → Java Class.
Назовите Person и добавьте код выше.


Создайте класс Main:
Аналогично создайте Main с методом main.

Запустите:
Правой кнопкой на Main.java → Run 'Main.main()'.


Полезные советы для новичков

Используйте this: Для отличия полей класса от параметров методов (например, this.name = name;).
Конструкторы по умолчанию: Если конструктор не указан, Java создает пустой конструктор public Person() {}.
Множественные конструкторы: Можно иметь несколько конструкторов (перегрузка), перегрузка, но об этом в следующем уроке.
Практика инкапсуляции: Всегда делайте поля private и предоставляйте доступ через геттеры/сеттеры.
Проверки в сеттерах: Добавляйте логику, чтобы избежать некорректных данных.



#Java #для_новичков #beginner #class #object
👍3
Что выведет код?

class Parent150825 {
Parent150825() {
print();
}
void print() {
System.out.println("Parent");
}
}

class Child150825 extends Parent150825 {
int value = 10;

@Override
void print() {
System.out.println(value);
}
}

public class Task150825 {
public static void main(String[] args) {
new Child150825();
}
}


#Tasks
👍4
Варианты ответа:
Anonymous Quiz
22%
"Parent"
11%
0
44%
10
22%
Ошибка компиляции
🤯2😱1
Карточка для запоминания for 😎

#memory_card
👍2
Что такое LockSupport? 🤓

Ответ:
LockSupport
предоставляет низкоуровневые методы (park, unpark) для приостановки и возобновления потоков. Используется в реализации Lock. Пример:

Thread t = new Thread(() -> {
LockSupport.park();
System.out.println("Unparked");
});
t.start();
LockSupport.unpark(t);

Более гибкий, чем wait/notify.


#собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🗓 История IT сегодня — 16 августа


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

Христос Харилаос Пападимитриу (греч. Χρήστος Χαριλάος Παπαδημητρίου; род. 1949, Афины) один из ведущих теоретиков в компьютерных науках; важные работы по теории алгоритмов, сложности вычислений и теория игр, автор фундаментальных учебников и исследований. Член Национальных Академии наук (2009) и Инженерной академии США, профессор Калифорнийского университета в Беркли.


🌐 Знаковые события

1890 — Электромеханическая обработка переписи США: Бюро переписи объявляет результаты, подсчитанные машинами Германа Холлерита — рубеж для истории вычислений и табуляторов.

1993 — Иан Мёрдок основал сообщество «Debian», занимающееся созданием и распространением свободного дистрибутива Debian GNU/Linux.

2006 — в русской Википедии появилась юбилейная, 100-тысячная статья.


#Biography #Birth_Date #Events #16Августа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Mems. Пятничные мемы.
🆒2👍1
Вновь создаем встречу, обсуждаем Java, заходите, поговорим.
Java for Beginner
Вновь создаем встречу, обсуждаем Java, заходите, поговорим.
Всем спасибо кто пришел🫡
Классно поговорили и обменялись мнениями👍
Думаю надо повторить🤝
👍6
🗓 История IT сегодня — 17 августа


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

Ло́уренс Джо́зеф «Ла́рри» Э́ллисон (англ. Lawrence Joseph «Larry» Ellison; род. 17 августа 1944 года, Бронкс, Нью-Йорк, США) сооснователь и долгосрочный руководитель Oracle Corporation; ключевая фигура в развитии коммерческих СУБД и корпоративного программного обеспечения.


🌐 Знаковые события


1958 — Pioneer 0 (Thor-Able) — первая американская попытка отправить аппарат к Луне; запуск 17 августа, авария на взлёте.

1970 программа «Венера»: запуск аппарата Венера-7, первого успешно передавшего данные с поверхности другой планеты — Венеры.

1982 — Германия/Япония: на заводе Philips (Ганновер) начинают серийно прессовать первые компакт-диски (CD); коммерческий старт CD-эры — осень 1982.


#Biography #Birth_Date #Events #17Августа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Если твой баг стоит миллионы: кто виноват и кто заплатит?

Ты написал код. Код ушёл в прод.
Через час — у компании минус 10 миллионов рублей из-за сбоя в платёжке.
Тебя вызывает тимлид. Потом HR. Потом юрист.

А в голове вертится одна мысль: если я сяду, где я возьму столько денег?



😉 Давайте сегодня развеем страхи любого начинающего разработчика


🤓 Где закон встречает программиста

В России у программиста есть три юридических ловушки:

Гражданский кодекс РФ

ст. 1064 ГК РФ — "Общая ответственность за причинение вреда".
ст. 15 ГК РФ "Компенсация убытков".
Если из-за твоего кода компания реально потеряла деньги, теоретически она может взыскать ущерб.


Трудовой кодекс РФ
ст. 232–233, 238 ТК РФ обязанность работника, как стороны трудового договора, нести материальную ответственность, но только в пределах своего заработка, если иное не доказано.

Уголовный кодекс РФ
(крайне редкий, но встречающийся кейс)
ст. 272 УК РФнеправомерный доступ к компьютерной информации.
ст. 273 УК РФсоздание и распространение вредоносных программ.


❗️Вот что важно - это наличие виновности❗️

😔 Что такое "виновность"
В трудовом праве РФ "виновность" это наличие твоих неправомерных действий (или бездействия) и наличие причинно-следственной связи с ущербом. Виновность полностью может установить только суд/специальная комиссия/уполномоченные лица.
При любом раскладе все решения можно обжаловать в вышестоящем суде.



🫰 Когда ты реально можешь заплатить?

🔴 Ущерб доказан и он прямой (сломанный сервер, утраченные данные, деньги реально ушли).
🔴 Ты действовал с нарушением правил, инструкций или проявил грубую небрежность.
🔴 Есть приказ о привлечении к ответственности (работодатель должен провести служебное расследование и зафиксировать все сопутствующие моменты).
🔴 Есть документально подтвержденное, законное, оформленное подтверждение ущерба.
🔴 Суд/комиссия установила, что вина в причиненном ущербе - твоя.

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

Важно: по ст. 241 ТК РФ твой максимум ответственности это средняя месячная зарплата.

А вот полную сумму ущерба взыщут только в спецслучаях (ст. 243 ТК РФ):
- умышленный вред,
- кража,
- разглашение тайны,
- алкоголь/наркотики,
- договор о полной мат. ответственности,
- причинение ущерба не при исполнении работником трудовых обязанностей.

Пример: ты по невнимательности, пьяный, уронил серверный блок, отчего удалилась продовая БД. Твой напарник, по инструкции обязан был делать бэкап — и не сделал. Полный ущерб причиненный компании выплатите пополам 🤣.


✌️ Когда ты НЕ платишь?

🔵 Ошибка нормальная рабочая, без умысла, в рабочем процессе или при выполнения задания.
🔵 Работодатель сам не создал условий (например, не было ревью, тестирования, или тебя заставили задеплоить в прод ночью) и т.д. Но важно это с твоей стороны это доказать!
🔵 Ущерб — это "упущенная выгода" (например, "мы могли заработать, но баг помешал" — это не взыскивается по ТК РФ).
🔵 Крайняя необходимость и необходимая оборона (если ты разбил монитор об голову грабителя — это не взыскивается по ТК РФ).

Пример: тебя попросили срочно вкатить фиксы без тестов, всё упало, компания потеряла клиентов. Тут вина на организации процесса, а не на тебе.


🤫 Вот мои советы, чтобы избежать проблем:

Документируйте всё
Ведите переписку с руководством и коллегами через корпоративные каналы (почта, мессенджеры) по рискованным задачам и условиям, которые могут привести к ущербу.

Следуйте инструкциям и правилам
Изучите и всегда следуйте внутренним правилам компании (политикам, регламентам, инструкциям). Не выполняйте задачи, которые не входят в вашу должностную инструкцию, без письменного распоряжения.

Проверяйте условия работы
Внимательно изучите свой трудовой договор. Проверяйте рабочее оборудование, если вам его предоставили.

Соблюдайте стандарты разработки
Регулярно проводите тестирование и ревью кода, ведите подробную документацию по проекту, если этого нет.


Понравилась статья - поделись с другом, позови его на канал и будет тебе моя благодарность 🤝

😎

#motivation
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8