uk
Feedback
Easy Java

Easy Java

Відкрити в Telegram

Лучшие обучающие материалы и другие полезности для Java-разработчиков. Сотрудничество: @heywan_n1 Цены: @heywan_media Реклама на бирже: https://telega.in/c/+r8kkGSypBY84MmIy

Показати більше
5 219
Підписники
-124 години
-237 днів
-8730 день
Архів дописів
Ошибка: Сравнение строк через == вместо .equals() 🚨 Одна из самых частых ошибок в Java — сравнение строк через ==. Ошибка ⚠️ :
public class StringComparison {
    public static void main(String[] args) {
        String str1 = "Hello";
        String str2 = "Hello";
        String str3 = new String("Hello");

        System.out.println(str1 == str2); // ✅ true (оба строки из пула строк)
        System.out.println(str1 == str3); // ❌ false (разные объекты в памяти)
    }
}
Что произошло 🚨 == сравнивает ссылки в памяти, а не содержимое строк! ✔️ Правильный вариант:
System.out.println(str1.equals(str2)); //  true
System.out.println(str1.equals(str3)); //  true
👍 Разбор: ✔️ == проверяет ссылки, а не содержимое строк. ✔️ Используй .equals() для сравнения значений строк. ✔️ intern() можно использовать для приведения строк в пул строк. 💡 Запомни: ✔️ == сравнивает ссылки. ✔️ .equals() сравнивает содержимое. ✔️ intern() делает строки из new String() частью пула строк. ❓ А вы знали об этом? 📍 Теги: #java #mistakes #bestpractices #string

⚡️ RECURA - полезный канал для разработчиков и инженеров. Канал ведёт DevOps-инженер, который ежедневно публикует: — код, повышающий эффективность разработки — лайфхаки и трюки для Bash и Linux — полезные утилиты для работы и отдыха — советы по информационной безопасности — актуальные новости из мира технологий и нейросетей Подпишись на @recura_tech, чтобы каждый день открывать для себя что-то новое и быть востребованным специалистом.

❓ Какой вариант правильный?
Anonymous voting

❓ Какой вариант правильный?
Anonymous voting

photo content

👨‍💻 Задача: Найти два числа в массиве, сумма которых равна целевому значению 📌 Условие: Дан массив целых чисел и целевое число target. Нужно найти два числа, сумма которых равна target, и вернуть их индексы. Гарантируется, что решение всегда существует. ✔️ Примеры:
Input: nums = [2, 7, 11, 15], target = 9  
Output: [0, 1] // (2 + 7 = 9)

Input: nums = [3, 2, 4], target = 6  
Output: [1, 2] // (2 + 4 = 6)
📌 Решение:
import java.util.HashMap;
import java.util.Map;

public class TwoSum {
    public static int[] findTwoSum(int[] nums, int target) {
        Map<Integer, Integer> map = new HashMap<>();

        for (int i = 0; i < nums.length; i++) {
            int complement = target - nums[i];

            if (map.containsKey(complement)) {
                return new int[]{map.get(complement), i};
            }

            map.put(nums[i], i);
        }

        throw new IllegalArgumentException("Решение не найдено");
    }

    public static void main(String[] args) {
        int[] nums = {2, 7, 11, 15};
        int target = 9;

        int[] result = findTwoSum(nums, target);
        System.out.println("[" + result[0] + ", " + result[1] + "]");
    }
}
👍 Разбор: ✔️ Используем HashMap для хранения чисел и их индексов. ✔️ Одним проходом по массиву за O(n) проверяем, есть ли нужное число. ✔️ Если target - nums[i] уже есть в map, возвращаем пару индексов. 💡 Запомни: ✔️ HashMap даёт поиск за O(1), что делает алгоритм эффективным. ✔️ Использование map.containsKey() позволяет избежать вложенных циклов. ❓ А вы знали об этом? 📍 Теги: #java #tasks #algorithms #hashmap

➡️ Easy Java | #Мемы
➡️ Easy Java | #Мемы

Ошибка: Автоупаковка (Autoboxing) и производительность. В Java Integer, Double и другие обёртки примитивов (wrapper classes) используют автоупаковку (autoboxing), которая может снижать производительность.Ошибка:
public class AutoboxingExample {
    public static void main(String[] args) {
        Integer sum = 0;  // ❌ Используем обёртку вместо int

        for (int i = 0; i < 1_000_000; i++) {
            sum += i; // ❌ Автоупаковка на каждой итерации (int → Integer)
        }

        System.out.println(sum);
    }
}
Проблема: 🚨 На каждой итерации создаётся новый объект Integer, что замедляет программу! ✔️ Правильный вариант:
int sum = 0; //  Используем int
for (int i = 0; i < 1_000_000; i++) {
    sum += i; 
}
System.out.println(sum);
👍 Разбор: ✔️ Автоупаковка создаёт новые объекты, что увеличивает потребление памяти и замедляет код. ✔️ Используй примитивные типы (int, double) там, где не нужна обёртка. 💡 Запомни: ✔️ int быстрее, чем Integer. ✔️ Избегай ненужной автоупаковки в циклах. ❓ А вы знали об этом? 📍 Теги: #java #autoboxing #performance #mistakes #bestpractices

— «ИИ заменит программистов» — «Без вышки в IT делать нечего» — «IT - это пузырь» Все слышали эти фразы? Спешу расстроить — э
«ИИ заменит программистов» — «Без вышки в IT делать нечего» — «IT - это пузырь» Все слышали эти фразы? Спешу расстроить — это пи*$@ж! Айтишник из «VISION» убивает стереотипы и даёт самую нужную информацию для входа в айти. Никакой воды, всё по делу, остаётся только выбрать нужное направление: Backend (Python, Java, C/C++, C#, Go, SQL)Frontend (JavaScript, HTML, CSS, React, Vue.js)ИБ & Хакинг, DevOps, Data Science, ML Самобытно и с юмором о программировании — https://t.me/+lpKq4-8wKpxkZWQ5

Ошибка: ConcurrentModificationException при итерации по списку. При изменении ArrayList во время итерации можно получить ConcurrentModificationException. ❌ Ошибка:
import java.util.*;

public class ConcurrentModExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>(List.of(1, 2, 3, 4, 5));

        for (Integer num : numbers) {
            if (num % 2 == 0) {
                numbers.remove(num); // ❌ ConcurrentModificationException
            }
        }
    }
}
👍 Разбор: ✔️ ArrayList использует модификационный счётчик, который ломается при изменении коллекции во время итерации. ✔️ for-each использует Iterator, который не поддерживает удаление элементов во время итерации. ✔️ Правильный вариант 1: Использовать Iterator.remove()
Iterator<Integer> iterator = numbers.iterator();
while (iterator.hasNext()) {
    if (iterator.next() % 2 == 0) {
        iterator.remove(); //  Работает корректно
    }
}
✔️ Правильный вариант 2: Использовать removeIf()
numbers.removeIf(n -> n % 2 == 0); //  Удаляет без исключений
💡 Запомни: ✔️ for-each нельзя использовать для удаления элементов. ✔️ Используй Iterator.remove() или removeIf(). ❓ А вы знали об этом? 📍 Теги: #java #concurrentmodification #collections #mistakes #bestpractices

🟢 1. Ошибка: == vs equals() при сравнении строк В Java строки (String) сравниваются не через ==, а с equals(), иначе возможны ошибки. 📌 Ошибка:
public class StringComparison {
    public static void main(String[] args) {
        String s1 = "hello";
        String s2 = new String("hello");

        System.out.println(s1 == s2);      // ❌ false (сравнение ссылок)
        System.out.println(s1.equals(s2)); // ✅ true (сравнение значений)
    }
}
👍 Разбор: ✔️ == сравнивает ссылки на объекты в памяти, а не значения. ✔️ equals() сравнивает сами строки. ✔️ Правильный вариант:
if (s1.equals(s2)) {
    System.out.println("Строки равны ");
}
💡 Запомни: ✔️ Используй equals() для строк. ✔️ == работает только для пулла строк (String s1 = "hello"; String s2 = "hello";). ❓ А вы знали об этом? 📍 Теги: #java #string #equals #mistakes #bestpractices

👩‍💻 Java - Полный Курс по Java
В этом видеокурсе автор пошагово и простым языком ознакомит вас с важными концепциями языка Java. Преподаватель на практике показывает — как, что и зачем делать, прямо в редакторе кода.
🔤 Ссылка на источник 🔤 ➡ Easy Java |#Видео #Курсы

➡️ Easy Java | #Мемы

🎉 Розыгрыш 10 000 звёзд Telegram! 🎉 Друзья, у нас отличные новости! Мы разыгрываем 10 000 звёзд Telegram среди подписчиков
🎉 Розыгрыш 10 000 звёзд Telegram! 🎉 Друзья, у нас отличные новости! Мы разыгрываем 10 000 звёзд Telegram среди подписчиков канала «Цифровая кухня». Участвуйте и получите шанс выиграть один из пяти призов! 🏆 Призовые места: 1 место: 3 000 звёзд 2 место: 2 500 звёзд 3 место: 2 000 звёзд 4 место: 1 500 звёзд 5 место: 1 000 звёзд 📋 Условия участия: 1. Подпишись на канал «Цифровая кухня» 2. Нажать кнопку "Участвую!" ⏰ Подведение итогов: 11 марта 2025 года в 18:00 на канале «Цифровая кухня» мы случайным образом выберем 5 победителей среди всех подписчиков канала. Результаты будут опубликованы там же. Что можно делать со звёздами? Звёзды Telegram можно использовать для покупки стикеров, подарков в чатах или перевода в другие активы. Это реальные деньги, которые сделают ваш Telegram ещё удобнее! Не упустите шанс! Подписывайтесь на канал «Цифровая кухня», чтобы не пропустить важные новости, полезные материалы и, конечно, результаты розыгрыша.

Recursion vs Iteration: Что выбрать?🗳 Рекурсия и итерация — два способа решения задач. Какой выбрать? 📌 Факториал: Рекурсия vs Итерация ✔️ Рекурсия:
public static int factorialRecursive(int n) {
    return (n == 1) ? 1 : n * factorialRecursive(n - 1);
}
✔️ Итерация:
public static int factorialIterative(int n) {
    int result = 1;
    for (int i = 2; i <= n; i++) {
        result *= i;
    }
    return result;
}
👍 Разбор: ✔️ Рекурсия удобна для разделяй и властвуй, но может вызвать StackOverflowError. ✔️ Итерация эффективнее по памяти, но иногда менее читаема. ✔️ В Java лучше избегать глубоких рекурсий из-за ограниченного стека. 💡 Запомни: ✔️ Рекурсия = удобство, но риск StackOverflowError. ✔️ Итерация = производительность и безопасность. 📍 Теги: #java #recursion #iteration #performance #bestpractices

🚀 Cегодня пройдет полезный бесплатный урок «Bun – быстрый альтернативный рантайм для Node.js» от онлайн-курса Node.js Develo
🚀 Cегодня пройдет полезный бесплатный урок «Bun – быстрый альтернативный рантайм для Node.js» от онлайн-курса Node.js Developer 05 марта 20:00 (мск). https://otus.pw/bI25/ Что будет на вебинаре? 1️⃣Разбор возможностей Bun: быстрый сервер, менеджер пакетов и тестирование. 2️⃣Сравнение Bun с Node.js: плюсы, минусы, производительность. 3️⃣Практическое применение Bun в реальных проектах. Кому вебинар будет полезен? - Фронтент, - Фуллстэк, - Бэкенд разработчикам на Node.js - И других языках для web'а. Что узнают участники на вебинаре? ✅ Как использовать Bun для запуска серверов и выполнения JavaScript-приложений. ✅ Как переходить с Node.js на Bun и какие сценарии использования подходят лучше всего. ⏰ Торопитесь! Успейте зарегистрироваться на бесплатный вебинар, который пройдет уже сегодня, 05 марта, в 20:00 (мск). Запись ограничена! https://otus.pw/bI25/?erid=2W5zFGrSctp #реклама О рекламодателе

Senior-разработчики, тимлиды и по совместительству админы GitHub, создали свои каналы по ЯП Java и Python❗️ Тут они показываю
Senior-разработчики, тимлиды и по совместительству админы GitHub, создали свои каналы по ЯП Java и Python❗️ Тут они показывают как писать код на очень крутом уровне, используя секретные фишки: 📱 PythonРеальный код, полезные советы и интересные задачи для Python-разработчика. 📱 JavaПолезные материалы по Java, которые будут интересны опытному и начинающему прогеру. 📚 Книжный pythonСлив платных курсов, статьи, книги и лучшая теория по всем Python. 🖥 Библиотека JavaСборник всех самых полезных статей и книг по Java. 🖥 MemesСамые жизненные и смешные мемы для любого программиста. P.S. 🔑Сделали каналы открытыми на пару дней, успейте подписаться!

🍿 Как работает сериализация в Java? Java предоставляет разработчикам удобные инструменты для сериализации объектов. Несмотря
🍿 Как работает сериализация в Java?
Java предоставляет разработчикам удобные инструменты для сериализации объектов. Несмотря на то, что они кажутся донельзя примитивными, их внутренняя реализация содержит много интересных моментов. В этой статье мы рассмотрим основы сериализации и некоторые нюансы, связанные с ней. И, конечно, посмотрим, как она работает изнутри.
🔤 Читать статью 🔤 ➡️ Easy Java | #Статьи #Полезно

‼️ ЯИНВЕСТ — вновь доступен ‼️ Знаете ли вы про канал в котором опытный трейдер делиться своими сделками и открыто торгует на
‼️ ЯИНВЕСТ — вновь доступен ‼️ Знаете ли вы про канал в котором опытный трейдер делиться своими сделками и открыто торгует на свою аудиторию? Только за прошлый день заработано +126% 💡 Почему стоит подписаться на этот канал? ⏺Заранее даём инсайды по горячим активам ⏺Проверенные стратегии и чёткие сигналы ⏺Возможность личной консультации с автором канала ⏺Только честный трейдинг – без пустых обещаний! ‼️ Ссылка активна ещё 38 минут ‼️ 👉 https://t.me/+qrkGq6QWHvw3MTgy Пора действовать! 💼

Map: Группировка данных с Collectors.groupingBy() В Java можно группировать данные в Map, используя Collectors.groupingBy(). 📌 Пример:
import java.util.*;
import java.util.stream.Collectors;

public class GroupingExample {
    public static void main(String[] args) {
        List<String> words = List.of("apple", "banana", "avocado", "blueberry", "cherry");

        Map<Character, List<String>> groupedWords = words.stream()
            .collect(Collectors.groupingBy(word -> word.charAt(0)));

        System.out.println(groupedWords);
    }
}

✔️ Вывод:
{a=[apple, avocado], b=[banana, blueberry], c=[cherry]}
🔹 Разбор: ✔️ groupingBy() — группирует данные по ключу. ✔️ word.charAt(0) — используем первую букву слова как ключ. ✔️ В результате получается Map<Character, List<String>>. 💡 Запомни: ✔️ groupingBy() удобно использовать для агрегации данных. ✔️ Можно комбинировать с mapping() для преобразования значений. 📍 Теги: #java #stream #collectors #groupingBy #collections

Easy Java - Статистика та аналітика Telegram каналу @easyjava_23