es
Feedback
Секреты Java

Секреты Java

Ir al canal en Telegram

Обсуждаем Java, архитектуру, фреймворки и всё, о чем должны говорить разработчики. Владелец: @Alexey_Morl Реклама на бирже: https://telega.in/c/java_secrets

Mostrar más
7 991
Suscriptores
Sin datos24 horas
Sin datos7 días
Sin datos30 días
Archivo de publicaciones
👩‍💻 Java уже в Telegram! Вот обширная база контента по разработке на Java, которая ежедневно пополняется новыми постами: Об
👩‍💻 Java уже в Telegram! Вот обширная база контента по разработке на Java, которая ежедневно пополняется новыми постами: Обучение Java с нуля Обучение Spring с нуля Обучение Hibernate с нуля Обучение JUnit с нуля Обучение Maven с нуля 📌 Ресурсы, гайды, шпаргалки, задачи и книги — всё собрано в одном месте: @java_ready

✅ Git: reset vs revert ▫️git reset Команда, которая перемещает указатель ветки на другой коммит, изменяя историю. Она может у
Git: reset vs revert ▫️git reset Команда, которая перемещает указатель ветки на другой коммит, изменяя историю. Она может удалить коммиты в локальном репозитории, а так же изменить индекс и рабочую директорию.
git reset --hard HEAD~1
Типы reset: - --soft — сохраняет изменения в индексе. Например, если были добавлены в индекс новые файлы через git add, он там и останутся. - --mixed (по умолчанию) — снимает изменения с индекса, но оставляет их в директории. С тем же файлом - он будет удален из индекса, но останется в директории. - --hard — удаляет изменения как из индекса, так и из директории. Т.е. все изменения будут удалены.
Если у нас есть структура коммитов вида a - b - c - d и мы выполним: git reset HEAD~1 То получим a - b - c. А все изменения из "d" коммита будет в директории, но удалены из индекса (если они были добавлены туда в коммите "d")
Хорошо подходит для локальных откатов и переписывания истории. Опасен на публичных ветках, особенно с --hard. ▫️git revert revert создаёт новый коммит, который отменяет изменения из предыдущего коммита, не изменяя историю. - Сохраняет историю: безопасно отменяет изменения на общих ветках. - Может откатывать отдельные коммиты из ветки. Вот он хорошо подходит для удаленных репозиториев.
git revert <commit_hash>
Если у нас есть структура коммитов a - b - c - d и мы выполним: git revert <d_commit_hash> То получим a - b - c - d - e, где коммит "е" содержит отмененные изменения из "d"
В итоге: - reset удаляет коммиты и меняет историю. - revert сохраняет историю, создавая новый коммит с отменой изменений. Для локальных веток — reset, для общих веток — безопаснее использовать revert. 🫡 Секреты Java #git

❓Какую из аннотаций Spring нужно использовать, чтобы включить управление транзакциями (Transaction management) Заходите размя
❓Какую из аннотаций Spring нужно использовать, чтобы включить управление транзакциями (Transaction management) Заходите размять мозги перед рабочей неделей в наш канал с сертификационными тестами по Java Core и Spring - https://t.me/+TNuCvMIS_dY1ODcy Но это не обязательно, отдыхать тоже важно)

⚡️ IT-обучение теперь в Telegram! В cвязи с недавнем замедлением Ютуба — лучшие обучающие каналы переехали в Telegram Вот кан
⚡️ IT-обучение теперь в Telegram! В cвязи с недавнем замедлением Ютуба — лучшие обучающие каналы переехали в Telegram Вот каналы для айтишников: 👩‍💻 Java: @Java 👩‍💻 Моб. разработка: @MobDev 📱 GitHub: @GitHub ⚙️ Backend: @Backend 🤓 Общее айти: @portalToIT 📱 Python: @Python 📱 Frontend: @Frontend 👩‍💻 C#: @Csharp 👩‍💻 С/С++: @Cpp 🖥 Базы Данных & SQL: @SQL 👩‍💻 Golang: @Golang 🖥 PHP: @PHP 👩‍💻 Разработка игр: @GameDev 👩‍💻 DevOps: @DevOps 🖥 Data Science: @DataScience 🤔 Хакинг & ИБ: @InfoSec 🐞 Тестирование: @QA 📱 Маркетинг: @Marketing 🖥 Дизайн: @Design ➡️ Сохраняйте себе, чтобы не потерять

Вам нравится читать контент на этом канале? Возможно, вы задумывались о том, чтобы купить на нем интеграцию? Следуйте 3 простым шагам, чтобы сделать это: 1) Регистрируйтесь по ссылке: https://telega.in/n/java_secrets 2) Пополняйтесь удобным способом 3) Размещайте публикацию Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.

✅ Как убить процесс по порту в Windows? Пишу эту заметку в том числе и для себя, надеюсь я не единственный, кто встречает эту
Как убить процесс по порту в Windows? Пишу эту заметку в том числе и для себя, надеюсь я не единственный, кто встречает эту проблему) Иногда при разработке пытаешься повторно запустить сервер, а система сообщает, что порт уже занят - port ... already in use, хотя ты вроде остановил приложение. В таких ситуациях в Windows можно выполнить несколько команд для определения процесса, занимающего порт, и его завершения. ▫️Определим процесс использующий порт: 1. Откройте Командную строку (cmd) с правами администратора: - Нажмите Win + R, введите cmd, затем Ctrl + Shift + Enter (для запуска от имени администратора). 2. Введите следующую команду, чтобы вывести список всех активных подключений:
netstat -aon | findstr :<номер_порта>
Получите что-то вроде (для порта 8080):
TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       12345
TCP    [::]:8080              [::]:0                 LISTENING       12345
Последнее число в строке (в данном примере 12345) — это PID (Process ID) процесса, который использует порт 8080. ▫️Теперь завершим процесс по его PID:
taskkill /PID <номер_PID> /F
Например, для завершения процесса с PID из примера выше команда будет такой:
taskkill /PID 12345 /F
Здесь ключ /F принудительно завершает процесс. Использование команды netstat и taskkill в Windows позволяет завершать процессы, блокирующие порты, которые нам уже не нужны. Только не убейте ничего лишнего) 🫡 Секреты Java #windows #port

❓Какой вариант кода выведет все элементы массива myArray?
Anonymous voting

#test
#test

😎 Бот в деле — прибыль на пределе Забудь про скучную работу на дядю — это уже вчерашний день! 🤖 Будь на шаг впереди — запус
😎 Бот в деле — прибыль на пределе Забудь про скучную работу на дядю — это уже вчерашний день!
🤖 Будь на шаг впереди — запусти свой онлайн-магазин через Telegram-бота прямо сегодня
🥳 Пока другие тормозят, ты можешь захватить свою нишу и начать зарабатывать уже сейчас Не жди, пока рынок перегреется! Время действовать — сейчас 💸 TechVibe

✅ Как определить, что массив содержит определённое значение в Java? В Java проверка наличия элемента в массиве может быть вып
✅ Как определить, что массив содержит определённое значение в Java? В Java проверка наличия элемента в массиве может быть выполнена разными способами, в зависимости от типа данных массива и требований к производительности. Рассмотрим несколько подходов для разных случаев с примерами: ▫️Использование цикла for Самый простой и некрасивый способ — это обычный цикл for, где проверяется каждый элемент массива. Этот способ работает для массивов любого типа, включая примитивные типы.
int[] numbers = {1, 2, 3, 4, 5};
int target = 3;
boolean found = false;

for (int number : numbers) {
    if (number == target) {
        found = true;
        break;
    }
}
Этот метод вручную перебирает элементы массива и останавливается, как только находит совпадение. Это базовое решение с временной сложностью O(n), где n — длина массива. ▫️Использование Arrays.asList() и contains() Для массивов объектов (не примитивных типов) можно использовать класс Arrays и метод asList(), который преобразует массив в список. После этого можно применить метод contains() для проверки наличия значения.
String[] fruits = {"Apple", "Banana", "Orange"};
String target = "Banana";

boolean found = Arrays.asList(fruits).contains(target);
Этот способ прост в использовании, но он подходит только для массивов объектов (String, Integer и др.). Для массивов примитивных типов его использовать нельзя. ▫️Использование Arrays.binarySearch() Если массив отсортирован, можно использовать метод binarySearch() из класса Arrays. Этот метод быстрее перебора, так как использует бинарный поиск, который имеет временную сложность O(log n).
int[] numbers = {1, 2, 3, 4, 5};
int target = 3;

// Массив должен быть отсортирован для использования binarySearch
int index = Arrays.binarySearch(numbers, target);
//index - если элемент найден, то позиция нужного элемента, либо значение < 0
Если массив не отсортирован, результат будет некорректным. ▫️Использование стримов (Java 8 и выше) Для массивов объектов можно использовать стримы, которые предоставляют лаконичный и читаемый способ выполнения различных операций с данными.
String[] fruits = {"Apple", "Banana", "Orange"};
String target = "Orange";

boolean found = Arrays.stream(fruits)
        .anyMatch(fruit -> fruit.equals(target));
Этот метод позволяет выполнить проверку в одну строку, делая код более лаконичным и поддерживаемым. ▫️Для примитивных типов: использование стримов Для массивов примитивных типов (например, int[], double[]) можно использовать стримы через IntStream, DoubleStream и т.д.
int[] numbers = {1, 2, 3, 4, 5};
int target = 4;

boolean found = IntStream.of(numbers).anyMatch(n -> n == target);
Стримы примитивов также обеспечивают лаконичное решение и часто используются в современных версиях Java. Конечно, выбор метода зависит от типа массива и требований к производительности. 🫡 Секреты Java #java #array

Repost from ITFB Group
Всем привет! 27 сентября в 16:00 приглашаем на совместный митап для Java-разработчиков от ITFB Group, «МТС Банка» и «СберТеха
Всем привет! 27 сентября в 16:00 приглашаем на совместный митап для Java-разработчиков от ITFB Group, «МТС Банка» и «СберТеха»! Обсудим современные подходы, инструменты и лучшие практики разработки на Java. Участие в митапе ITFB Group — отличная возможность обменяться опытом, обсудить новые технологии и прокачать свои знания в области Java-программирования. Программа: ➖Использование Kubernetes для Spring приложений ➖GraalVM vs JVM и GraalVМ vs Go ➖Spring Boot vs Micronaut под GraalVM Native Image ➖Теряем сообщения в системе легально — управление проблемными ситуациями ➖Observability в Spring Boot 3 Спикеры: ➖Матвей Светлов — архитектор центра разработки CRM, «МТС Банк» ➖Евгений Ходосов — ведущий разработчик, ITFB Group ➖Антон Ромза — архитектор, ITFB Group ➖Владимир Маслов — главный руководитель ИТ-направления, «СберТех» Для участия в митапе выберите формат (online или offline в офисе ITFB Group) и оставьте заявку на сайте ➡️ Реклама. ООО "ТСР ТЕХ". ИНН 9729307967. erid: LjN8KNatk

✅ Short-сircuit булевы операторы В Java укороченные (short-circuit с англ. - "короткое замыкание") операторы - это логические
Short-сircuit булевы операторы В Java укороченные (short-circuit с англ. - "короткое замыкание") операторы - это логические операторы && (логическое И) и || (логическое ИЛИ). Эти операторы позволяют сократить вычисления выражений, когда результат уже можно определить на основе одной части выражения, что делает выполнение более эффективным и позволяет избежать потенциальных ошибок или лишних вычислений. Заметьте, что для XOR (исключающее ИЛИ) операции не существует short-circuit логического оператора. Этот пост как дополнение к посту про приоритеты булевых операций. Как работает short-circuit в Java? ▫️Оператор AND (&&): В выражении с оператором &&, если первая часть (левая) выражения возвращает false, то результат всего выражения будет false, и дальнейшие вычисления не требуются. Это связано с тем, что для оператора И оба операнда должны быть истинны, чтобы всё выражение вернуло true. Пример:
boolean isValid = (5 > 10) && (checkMethod());
Здесь первое выражение (5 > 10) равно false, поэтому метод checkMethod() никогда не будет вызван. ▫️Оператор OR (||): В выражении с оператором ||, если первая часть выражения возвращает true, результатом всего выражения будет true, и дальнейшие вычисления не требуются. Это связано с тем, что для оператора ИЛИ достаточно, чтобы один из операндов был истинным, чтобы всё выражение стало true. Пример:
boolean isValid = (5 < 10) || (checkMethod());
В данном случае первое выражение (5 < 10) вернёт true, поэтому метод checkMethod() не будет вызван. Пример использования: Представим ситуацию, когда у нас есть метод, который проверяет какие-то условия или вызывает ресурсоёмкие операции:
public class Example {

    public static boolean checkCondition() {
        System.out.println("Метод checkCondition был вызван!");
        return true;
    }

    public static void main(String[] args) {
        // Пример с && - короткое замыкание
        boolean result1 = (5 > 10) && checkCondition();
        // Метод checkCondition не будет вызван, так как 5 > 10 = false

        // Пример с || - короткое замыкание
        boolean result2 = (5 < 10) || checkCondition();
        // Метод checkCondition не будет вызван, так как 5 < 10 = true
    }
}
В результате выполнения выражений ни в одном из случаев метод checkCondition() не был вызван, так как результат был ясен уже на первой проверке. Когда short-circuit операции полезны? ▫️Оптимизация вычислений: В сложных логических выражениях можно избежать выполнения лишних операций, если результат уже известен. ▫️Избежание ошибок: Short-circuit может предотвратить выполнение нежелательных операций, например, обращение к переменным, которые могут привести к исключениям (например, обращение к null объекту). Например:
   String str = null;
   if (str != null && str.length() > 5) {
       System.out.println("Строка длиннее 5 символов");
   }
   
В этом примере, если str == null, выражение завершится на первой части, и проверка str.length() > 5 не будет выполнена, что предотвращает выброс NullPointerException. Заключение Short-circuit в Java — это полезный механизм, который делает код более эффективным и безопасным. Он сокращает ненужные вычисления и помогает избежать ошибок, особенно в сложных логических условиях. 🫡 Секреты Java #java #boolean

❗️Страх обосраться это нормально❗️
Я уже устал.. долго учу Java, но так и не начал ходить по собесам
Узнаешь себя? Наш знакомый эксперт в Java - Павел Сорокин, разобрал самые частые вопросы с которыми к нему обращаются люди на консультациях👇 1️⃣ Постоянно кажется, что я не готов. Процесс обучения длится уже больше 1.5 года, начинаю забывать основы, которые учил в начале. При обучении одна из самых больших ошибок - это распыление фокуса. Определяешь просто частые технологии и вопросы, которые задают на собесах и идешь строго по ним, не распыляясь писал об этом тут. Первые собесы - тренировочные. Можете от них вообще не ожидать никаких результатов, не надеятся - это ТРЕНИРОВКА. Страх будет всегда, его просто нужно принять и идти дальше. Страх возникает из-за неизвестности, неодобрения со стороны других. Даже если вы провалите собес, что самое плохое случится? Вас не убьют, ничего с вами не сделают, вы и также будете сидеть в своем уютном доме. Любой страх уничтожается действием. 2️⃣ Не понимаю насколько глубоко нужно изучать технологию Каждую технологию необходимо понимать ровно настолько, насколько она необходима тебе. Если работаешь с БД и нет каких-то больших нагрузок, то нет смысла углубляться устройство БД. Не нужно знать как Spring устроен под капотом для того, чтобы найти работу. Рациональный подход - просто учить минимальный достаточный набор и улучшать его по пути. 3️⃣ Конкуренция большая, на собеседования невозможно пробиться Конкуренции на самом деле не существует. Если ты обходишь своих конкурентов по резюме/софт-скиллам/хард-скиллам, то для тебя нет конкуренции, когда ты лучше всех. Единственное, что остается - обойти всех. О двух действенных способах пройти на собес рассказал в полной версии поста ‼️Рекомендуем подписаться на Пашу и начать ознакомление с его каналом с этого поста с разбором базовых вопросов на собеседованиях. Также у Паши есть отличные бесплатные видео-материалы - полный гайд по Java Core и Многопоточке и реальное успешное собеседование на Junior Java. Можете забрать их в его боте.

❓На какой строке код успешно скомпилируется?
Anonymous voting

#test
#test

Да, быть разработчиком непросто. Но нет ничего невозможного, если у вас есть желание разобраться ☕ А если не уверены, что име
Да, быть разработчиком непросто. Но нет ничего невозможного, если у вас есть желание разобраться ☕ А если не уверены, что именно язык Java «ваш», то добро пожаловать на подготовительный курс «Java-разработчик» от онлайн-школы Хекслет. Практика с первого дня обучения, 62 онлайн-урока, 4 живых вебинара, помощь наставника, собственный проект по окончании программы, – и все это даже при нулевом уровне подготовки. Не обещаем, что будет легко, но интересно, полезно и недорого (всего 990 рублей!) – гарантируем. На все это вам будет отведено 2 недели и 1 наставник-эксперт, который поможет справиться с трудностями.  ⏰ Cтарт уже 3 октября, так что записывайтесь скорее!

❓Что выведет код на изображении выше?
Anonymous voting

#test
#test

❓ Где можно использовать префиксные деревья? При реализации множеств и ассоциативных массивов. А где можно посмотреть, как вы
❓ Где можно использовать префиксные деревья? При реализации множеств и ассоциативных массивов. А где можно посмотреть, как выполняется алгоритм ассоциативного массива на основе префиксного дерева? 🚀 На нашем открытом онлайн-уроке! 💯 Мы выполним визуальное тестирование загрузкой 2000 слов в массив англо-русского словаря. Вебинар «Префиксное дерево» проведёт Евгений Волосатов, программист БД с 25-летним опытом. 👨‍💻🛠👨🏻‍💻 Будет интересно: junior-разработчикам на любых языках программирования. 📅 7 октября, 20:00 МСК 🆓 Бесплатно в рамках старта курса «Алгоритмы и структуры данных». 🔴 Записаться на открытый урок: https://otus.pw/bpfR/?erid=LjN8KVYyz О рекламодателе

❓Что выведет код на изображении выше?
Anonymous voting