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

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

Наш канал на RUTube - https://rutube.ru/channel/37896292/
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Я и моя команда начинаем новый проект

#mems
🔥1🤓1
Есть предложение встретиться завтра в 16:00 по МСК на лайвкодинг!

Будем изучать дальнейшее тестирование в Spring - Как тестировать API.
Anonymous Poll
34%
О! Я приду! 👌
17%
Я хотел(а) б, но не могу)((( 🤷‍♀️
45%
Я посмотрю в записи! ❤️
3%
Нет, мне это не интересно 👎
👍5
Всем привет! 👋

Приглашаю всех желающих сегодня собраться в Яндекс.Телемост в 16:00 по МСК!

В этот раз мы продолжим рассматривать тестирование в Spring.

Приходите, это хороший шанс позадавать вопросы 🧑‍💻

Как всегда жду всех! 🫡
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🗓 История IT сегодня — 10 августа


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

Ян Райчман (10 августа 1911) — английский инженер, внёсший важный вклад в разработку электронных вычислительных машин (в частности — трубчатой памяти «Selectron» для проекта Дж. фон Неймана)


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

1937 — Клод Шеннон защитил магистерскую диссертацию
10 августа 1937 года Клод Шеннон подал магистерскую работу «Символьный анализ релейно-переключательных цепей» в MIT — один из основополагающих трудов, положивших теоретическую основу цифровых вычислений и теории информации.

1937 — Патент на электрогитару (Rickenbacker “Frying Pan”)
Патент № 2 089 171 зарегистрирован 10 августа 1937 года, что символически стало началом электроники в музыкальной технике — косвенно влиятельной в развитии цифрового звука и технологий музыкального I/O

#Biography #Birth_Date #Events #10Августа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Молчаливые разработчики ломают проект быстрее, чем баги.

Представь - ты уже в команде.
На дейли предложили новый паттерн разработки который априори должен все улучшить.
Но ты точно знаешь, что это не сработает, так как ты вчера это пробовал в пет-проекте.

И ты промолчал, потому что "ну, я же джун, что я понимаю"? Или "они же специалисты им виднее, зачем я буду спорить?".

И через неделю команда всё переделывает с нуля...

Так вот, молчание — это не "мир в команде".

Это приглашение к ошибке.

А умение спорить — это один из важнейших навыков в разработке, особенно в командных проектах.


🔴Почему конфликты не всегда зло

В психологии есть понятие когнитивный конфликт (cognitive conflict) — это когда люди спорят о идеях, подходах и решениях, а не о том, "кто дурак".

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

Исследования показывают, что такие споры:
Повышают качество решений
Ускоряют поиск оптимального подхода
Помогают видеть проблему под разными углами

А вот эмоциональный конфликт (affective conflict) — это уже про личные обиды, сарказм и переход на личности.


Он действительно убивает команду.



🔴Почему это особенно важно в разработке

В Agile-командах решения часто принимаются на лету, и от твоей способности спорить грамотно зависит:
Будет ли проект работать через месяц
Или вы перепишете половину кода, потому что ты знал, что это не работает так, но постеснялся сказать.


Кроме того, в IT очень легко спрятаться за ноутбуком и не влезать в дискуссии. Но тогда твой вклад будет минимальным, даже если ты реально видишь лучшее решение.


Некоторых останавливает и неуверенность, даже если точно знают что решение верное. Потому что порицание за неверное решение пройдет мимо как и поощрение.


🔴Как спорить так, чтобы не сгорели мосты

Отделяй идею от человека
😔
Говори «Подход X не подходит, потому что…», а не "Ты написал ерунду".
Это снижает вероятность перехода в эмоциональный конфликт
.

Используй вопросы вместо утверждений
😉
Вместо «Это плохо» → "А что если попробовать так? Какие риски?"

Подкрепляй примерами или данными 🤓
В IT спор выигрывает не громкость голоса, а аргумент в виде теста, логов или статистики.

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


🔴 Почему этот soft skill один из важнейших?

Он напрямую влияет на качество кода и архитектуры.
Он делает тебя заметным и ценным участником.
Он помогает избегать тихих катастроф, когда "все согласились, а проект рухнул".


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



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

😎

#motivation
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3
Встреча создана!

залетаем! -
https://telemost.yandex.ru/j/36394282034180 ✈️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
В целом ребят встреча прошла почти успешно))) Пока не пришел человек - гнида и все не испортил)

Спасибо тем кто пришел, весьма благодарен. Но еще довольно много хотел Вам рассказать((( Поэтому в свободное время я запишу все это и выложу обязательно.

И обращаясь к "человеку" который это делает - я не понимаю зачем? Чего ты добиваешься? Я и так делаю все это бесплатно, стараясь дать многим что знаю, а еще и мешать... Я не понимаю. Это не просто гниль, это болезнь и жаль что такое дерьмо находится в нашем канале(((
🤓3
📌 Факт дня:

А вы знали, что первый компьютерный "онлайн-аукцион для искусства" был запущен в 1997 году?

Sotheby’s запустил онлайн-платформу для продажи произведений искусства, став первым аукционным домом, использующим интернет для торгов. Это предшествовало NFT-аукционам.


proof

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


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

Сти́вен Гэ́ри (Стив) Во́зняк (англ. Stephen Gary (Steve) Wozniak; род. 11 августа 1950, Сан-Хосе, США) — род. 11 августа 1950. Сооснователь Apple; спроектировал Apple I и Apple II, которые задали стандарт для персональных компьютеров конца 1970-х.

Том Килберн (Tom Kilburn 11 августа 1921 г. – 17 января 2001 г.) — Британский учёный-инженер, один из разработчиков первых электронных ЭВМ (включая Manchester Baby) и соавтор памяти Williams–Kilburn; ключевая фигура ранней вычислительной техники.


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

В 2021 и 2023 годах
Samsung представила свои новейшие складные смартфоны, умные часы и планшеты. Эти мероприятия привлекли внимание глобального ИТ-сообщества благодаря инновациям в дизайне и функциональности устройств. Например, в 2023 году были представлены Galaxy Z Fold 5 и Z Flip 5, которые стали важным шагом в развитии складных технологий.


#Biography #Birth_Date #Events #11Августа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Раздел 4: Управляющие конструкции

Глава 2: Циклы

while / do-while в Java

Циклы в Java позволяют выполнять блок кода несколько раз, что полезно для повторяющихся задач, таких как обработка данных или ожидание ввода пользователя. В этом уроке мы разберем два типа циклов: while и do-while. Они используются, когда количество итераций неизвестно заранее и зависит от условия.

1. Цикл while

1.1. Синтаксис
Цикл while проверяет условие перед каждой итерацией. Если условие истинно (true), код внутри цикла выполняется. Если ложно (false), выполнение переходит к следующей строке после цикла.
while (условие) {
// Код, который выполняется, если условие истинно
}

Условие: Выражение, возвращающее boolean (true или false).
Блок кода: Выполняется, пока условие истинно.


1.2. Как работает

Проверяется условие.
Если условие истинно, выполняется блок кода.
После выполнения блока кода условие проверяется снова.
Если условие ложно, цикл завершается, и выполнение продолжается после цикла.


1.3. Примеры
Простой счетчик
int i = 1;
while (i <= 5) {
System.out.println("Число: " + i);
i++;
}

Вывод:
Число: 1
Число: 2
Число: 3
Число: 4
Число: 5

Объяснение: Цикл начинается с i = 1. Пока i <= 5, печатается значение i, и i увеличивается на 1. Когда i становится 6, условие становится ложным, и цикл завершается.


Суммирование чисел до ввода 0
import java.util.Scanner;

Scanner scanner = new Scanner(System.in);
int sum = 0;
int number;
System.out.println("Введите числа для суммирования (0 для завершения):");
number = scanner.nextInt();
while (number != 0) {
sum += number;
number = scanner.nextInt();
}
System.out.println("Сумма: " + sum);

Объяснение: Пользователь вводит числа, которые добавляются к sum, пока не введет 0. Цикл while проверяет number != 0 перед добавлением.


Цикл с несколькими условиями
int x = 10;
int limit = 20;
while (x > 0 && x < limit) {
System.out.println("x = " + x);
x--;
}

Вывод:
x = 10
x = 9
x = 8
...
x = 1

Объяснение: Цикл выполняется, пока выполняются оба условия: x > 0 и x < limit. Числа печатаются от 10 до 1.


Бесконечный цикл
int i = 0;
while (true) {
System.out.println("Итерация: " + i);
i++;
if (i >= 3) {
break; // Выход из цикла
}
}

Вывод:
Итерация: 0
Итерация: 1
Итерация: 2

Объяснение: Условие true делает цикл бесконечным, но break прерывает его, когда i достигает 3.


1.4. Особенности
Проверка условия: Условие проверяется перед выполнением блока кода, поэтому цикл может не выполниться ни разу, если условие изначально ложно.
Обновление переменных: Необходимо обновлять переменные внутри цикла, чтобы условие в конечном итоге стало ложным.
Использование: Подходит для задач, где количество итераций неизвестно, например, чтение данных до конца файла или ожидание ввода пользователя.



2. Цикл do-while

2.1. Синтаксис
Цикл do-while выполняет блок кода хотя бы один раз, а затем проверяет условие. Если условие истинно, цикл продолжается.

do {
// Код, который выполняется хотя бы один раз
} while (условие);

Условие: Выражение, возвращающее boolean.
Блок кода: Выполняется перед проверкой условия.


2.2. Как работает
Выполняется блок кода.
Проверяется условие.
Если условие истинно, выполнение возвращается к блоку кода.
Если условие ложно, цикл завершается.



#Java #для_новичков #beginner #while #do_while
👍4
2.3. Примеры
Простой счетчик
int i = 1;
do {
System.out.println("Число: " + i);
i++;
} while (i <= 5);

Вывод:
Число: 1
Число: 2
Число: 3
Число: 4
Число: 5

Объяснение: Блок кода выполняется, затем проверяется i <= 5. Цикл продолжается, пока условие истинно.


Выполнение при ложном условии
int i = 6;
do {
System.out.println("Это выполнится один раз");
} while (i <= 5);

Вывод: Это выполнится один раз

Объяснение: Блок кода выполняется один раз, даже если условие i <= 5 изначально ложно.


Меню с вводом пользователя

import java.util.Scanner;

Scanner scanner = new Scanner(System.in);
String input;
do {
System.out.print("Введите команду (или 'quit' для выхода): ");
input = scanner.nextLine();
System.out.println("Вы ввели: " + input);
} while (!input.equalsIgnoreCase("quit"));

Объяснение: Пользователь вводит команды, пока не введет "quit". Цикл гарантирует, что запрос появится хотя бы один раз.


2.4. Особенности
Гарантированное выполнение: Блок кода выполняется хотя бы один раз, даже если условие ложно.
Использование: Подходит для задач, где нужно выполнить действие хотя бы раз, например, отображение меню или запрос ввода.



3. Правильное применение

3.1. Лучшие практики

Используйте фигурные скобки {}:
Даже для одной строки, чтобы избежать ошибок и улучшить читаемость.// Плохо: без скобок

while (i < 5)
System.out.println(i++);

// Хорошо: со скобками
while (i < 5) {
System.out.println(i++);
}


Обновляйте переменные:
Убедитесь, что переменные в условии изменяются, чтобы избежать бесконечных циклов.

Проверяйте на null:
Если работаете с объектами, проверяйте их на null, чтобы избежать NullPointerException.String input = null;
while (input != null && !input.isEmpty()) {
// Обработка ввода
}


Используйте понятные имена:
Например, counter вместо i делает код понятнее.

Избегайте бесконечных циклов:
Если используете while (true), добавьте break для выхода.while (true) {
if (условие) break;
}


3.2. Распространенные ошибки
Забыть обновить переменную:int i = 1;
while (i <= 5) {
System.out.println(i); // Бесконечный цикл, так как i не увеличивается
}


Неправильный выбор цикла:
Использование do-while, когда while лучше, или наоборот.

Сложные условия:
Слишком сложные условия затрудняют чтение. Разбивайте их на переменные.
// Плохо
while (x > 0 && y < 10 && z != null && z.isValid()) {}

// Хорошо
boolean isValid = x > 0 && y < 10 && z != null && z.isValid();
while (isValid) {}



4. Работа под капотом


4.1. Компиляция в байт-код

Цикл while:
Компилируется в инструкции if и goto. Условие проверяется перед выполнением, и если оно истинно, JVM переходит к блоку кода.

Пример байт-кода (упрощенно):
while (i < 5) {
i++;
}

Байт-код:iload i
bipush 5
if_icmpge end
iinc i, 1
goto loop
end:


Цикл do-while:
Блок кода выполняется сначала, затем проверяется условие с помощью if и goto.

Пример байт-кода:
do {
i++;
} while (i < 5);

Байт-код:loop:
iinc i, 1
iload i
bipush 5
if_icmplt loop


4.2. Память и стек
Стек операндов: Условие цикла вычисляется в стеке операндов JVM.
Стек вызовов: Локальные переменные цикла (например, i) хранятся в стеке вызовов.
Куча: Если в цикле создаются объекты (например, new String()), они хранятся в куче.


4.3. Оптимизация в JVM
JIT-компиляция: JVM может оптимизировать циклы, встраивая их в машинный код для повышения производительности.
Короткое замыкание: Если условие содержит логические операторы (&&, ||), JVM пропускает ненужные вычисления.
Удаление пустых циклов: Если цикл не выполняет полезной работы, JIT-компилятор может его убрать.


4.4. Ошибки в памяти
Бесконечные циклы: Могут переполнить стек или кучу, если создаются объекты.
NullPointerException: Работа с объектами без проверки на null в условии.
String s = null;
while (s.length() > 0) { // Ошибка: NullPointerException
}


#Java #для_новичков #beginner #while #do_while
👍3
Тестирование в Spring
2. Модульные тесты через TDD в Spring. Tестирование REST API.

Серия видео посвященная тестированию всего и вся в Spring.

Что мы рассмотрели:
🔵как написать тест контроллера через TDD
🔵узнали как частично поднимать контекст для тестирования API
🔵логику тестирования исходящих запросов
🔵варианты написания параметризированных тестов

Ссылка на Youtube
Ссылка на Рутьюб

Ссылка на GitHub - жду ваших звезд ☺️

Смотрите, ставьте лайки, подписывайтесь на каналы!✌️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Что выведет код?

public class Task110825 {
public static void main(String[] args) {
int i = 0;
while (i++ < 5) {
System.out.print(i + " ");
if (i == 3) {
i += 2;
}
}
}
}


#Tasks
👍1
Варианты ответа
Anonymous Quiz
52%
1 2 3
24%
1 2 3 5
17%
1 2 3 6
7%
1 2 3 4 5
👍2
Карточка для запоминания String 😎

#memory_card
👍3
Forwarded from ChatRoom (Java for Beginner) (Первожрец Java)
Вай-вай))) 300 человеков 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3
Что такое ConcurrentSkipListMap? 🤓

Ответ:

ConcurrentSkipListMap
— потокобезопасная реализация NavigableMap, использующая структуру skip-list для хранения упорядоченных ключей.

Пример:
ConcurrentSkipListMap<Integer, String> map = new ConcurrentSkipListMap<>();
map.put(2, "Two");
map.put(1, "One");
System.out.println(map.firstKey()); // 1

Подходит для многопоточных приложений с упорядоченными данными.


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

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

Дороти Элизабет Деннинг (урождённая Роблинг, родилась 12 августа 1945 года) — американский исследователь в области информационной безопасности, известный своими системами контроля доступа на основе решётчатой архитектуры (LBAC), системами обнаружения вторжений (IDS) и другими инновациями в области кибербезопасности. Она опубликовала четыре книги и более 200 статей. В 2012 году она была включена в Национальный зал славы кибербезопасности , а сейчас является почётным профессором кафедры анализа обороны Военно-морской аспирантуры.

Мануэла Мария Велозо (родилась 12 августа 1957 г.) руководитель отдела исследований искусственного интеллекта JP Morgan и почётный профессор Университета Герберта А. Саймона в Школе компьютерных наук Университета Карнеги — Меллона, где ранее она возглавляла кафедру машинного обучения. До 2014 года она была президентом Ассоциации содействия развитию искусственного интеллекта (AAAI), а также соучредителем и бывшим президентом Федерации RoboCup. Является международным экспертом в области искусственного интеллекта и робототехники.


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

1960 год — США запустили Echo-1A, первый в истории коммуникационный спутник, осуществляющий ретрансляцию радиосигналов и сделавший огромный шаг в развитии спутниковой связи.

1962 — СССР запустил «Восток 4» с космонавтом Павлом Поповичем, впервые два пилотируемых корабля находились в космосе одновременно; они осуществили радиосвязь и сблизились на расстояние около 6,5 км.

1981 — IBM представила и начала продажи первого массового персонального компьютера IBM PC (модель 5150), что стало ключевым рубежом в истории вычислительной техники.


#Biography #Birth_Date #Events #12Августа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1