uk
Feedback
Java | Фишки и трюки

Java | Фишки и трюки

Відкрити в Telegram

Java: примеры кода, интересные фишки и полезные трюки Купить рекламу: https://telega.in/c/java_tips_and_tricks ✍️По всем вопросам: @Pascal4eg

Показати більше
6 820
Підписники
+724 години
-97 днів
-6030 день
Архів дописів
Кошка говорит «мяу», собака говорит «гав», Java-разработчик говорит «кто-нибудь видел мой энергетик? А то мне еще баги исправ
Кошка говорит «мяу», собака говорит «гав», Java-разработчик говорит «кто-нибудь видел мой энергетик? А то мне еще баги исправлять». Да, быть разработчиком на Java непросто. Но нет ничего невозможного, если у вас есть желание разобраться и двухнедельный подготовительный курс от Хекслета за 990 рублей. – 62 онлайн-урока; – 4 живых вебинара; – практика с первого дня; – помощь наставника в закрытом чате. Нет опыта? Не беда! Как говорят в IT-среде: «А что, если попробовать так?» И мы тоже говорим вам “Попробуйте” ⏰ Cтарт уже 29 мая!

⌨️ Полезные стримы. Группировка Дан список людей с именем и городом проживания. Нужно сгруппировать их по городам.

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

record Person(String name, String city) {}

public class StreamExample {
    public static void main(String[] args) {
        List<Person> people = List.of(
    new Person("Alice", "New York"),
    new Person("Bob", "Los Angeles"),
    new Person("Charlie", "New York"),
    new Person("David", "Los Angeles"),
    new Person("Edward", "San Francisco")
        );

        Map<String, List<Person>> peopleByCity = people.stream()
                .collect(Collectors.groupingBy(Person::city));

        peopleByCity.forEach((city, peopleInCity) -> {
            System.out.println(city + ": " + peopleInCity.stream()
                    .map(Person::name)
                    .collect(Collectors.joining(", ")));
        });
        // Вывод:
        // San Francisco: Edward
        // New York: Alice, Charlie
        // Los Angeles: Bob, David
    }
}
#java #stream #grouping

🚀Онлайн-Хакатон Practice & Scale AI Тебя ждут увлекательные мастер-классы, командная работа над актуальными кейсами, возможн
🚀Онлайн-Хакатон Practice & Scale AI  Тебя ждут увлекательные мастер-классы, командная работа над актуальными кейсами, возможность представить свои результаты на захватывающей питч-сессии и доказать, что ты лучший из лучших! 🔝  🧑‍💻Уникальный кейс: - Рерайтинг текста с помощью ИИ на уровне, позволяющем проходить фильтрации распознающих ИИ систем  🏆Призовой фонд 500 000 рублей! Приступай к разработке решения уже сейчас, чтобы 9 июня представить лучший продукт - мы ждем: крутые решения в программном коде проекта, потенциал для рыночной масштабируемости и внедрения в бизнес.   📅Когда: 7 - 9 июня 2024 года 🌐Формат: Онлайн 🔥Дедлайн регистрации: 4 июня 2024 года, 23:59 (мск) Подробности и регистрация: https://tglink.io/8b60a81a9c18

⌨️ Внутренняя реализация StringBuilder Класс StringBuilder предназначен для создания и манипуляции изменяемыми строками. Это альтернативный класс для String, который позволяет изменять его содержимое без создания новых объектов при каждой операции изменения, что делает его более эффективным при частых операциях изменения строк. Класс StringBuilder использует массив символов для хранения строки и динамически изменяет его размер по мере необходимости. Переменная count отслеживает текущую длину строки. Упрощенно:

public final class StringBuilder extends AbstractStringBuilder implements java.io.Serializable, CharSequence {
    char[] value; // Массив символов, хранящий содержимое строки
    int count;    // Количество символов в текущем объекте StringBuilder
}
Примерная реализация метода append:

public StringBuilder append(String str) {
    if (str == null) str = "null";
    int len = str.length();
    ensureCapacityInternal(count + len); // расширить массив если нужно
    str.getChars(0, len, value, count);
    count += len;
    return this;
}
Метод str.getChars(..) копирует строку str в массив value в позицию count (то есть добавляет в конец массива). #java #stringbuilder #implementation

☄️ Горячая акция для IT-специалистов на дизайн и ремонт квартиры! RE Design Buro создаем дизайн-проекты и реализуем их в жизн
+6
☄️ Горячая акция для IT-специалистов на дизайн и ремонт квартиры! RE Design Buro создаем дизайн-проекты и реализуем их в жизнь более 15 лет ⭐️ За это время сделали уже 450+ проектов и ремонтов в Москве и области 🏆 Коротко о компании: ⭐️ работают не бригады, а узкие специалисты: плиточники, электрики, сантехники т.д. ⭐️ 6 месяцев средний срок ремонта. ⭐️ рейтинг выполненных ремонтов - 4.9. ⭐️ все цены и сроки фиксируем в договоре. ⭐️ оплата разбивается частями по факту сдачи работ. 💥 Только для специалистов IT-индустрии - скидка 10% на дизайн и ремонт от компании RE Design Buro ‼️ Важное условие — вы работаете в IT-компании, которая получила аккредитацию Минцифры РФ 👉 Наши работы 👉 Мы в Телеграм 👉 Связаться с нами 👉 Консультация дизайнера БЕСПЛАТНО 👉 Получить сметный расчёт стоимости ремонта

#java #meme #salary
#java #meme #salary

⌨️ Что произойдёт, если в блоке инициализации возникнет исключительная ситуация? Для нестатических блоков инициализации, если выбрасывание исключения прописано явным образом требуется, чтобы объявления этих исключений были перечислены в throws всех конструкторов класса. Иначе будет ошибка компиляции. Для статического блока выбрасывание исключения в явном виде, приводит к ошибке компиляции. В остальных случаях, взаимодействие с исключениями будет проходить так же, как и в любом другом месте. Класс не будет инициализирован, если ошибка происходит в статическом блоке и объект класса не будет создан, если ошибка возникает в нестатическом блоке. #java #initialization #exception

🔓 Топовое обучение теперь доступно каждому! 😎 IT Syndicate — лучшее место для поиска курсов по IT-технологиям совершенно бесплатно. У нас ты найдешь материал по любым специальностям и уровням подготовки! 🔥 Заходи прямо сейчас, чтобы не потерять — IT Syndicate!

⌨️ Для чего в Java используются статические блоки инициализации? Статические блоки инициализация используются для выполнения кода, который должен выполняться один раз при инициализации класса загрузчиком классов, в момент, предшествующий созданию объектов этого класса при помощи конструктора. Такой блок (в отличие от нестатических, принадлежащих конкретном объекту класса) принадлежит только самому классу (объекту метакласса Class). #java #static #initialization

Что выведет код?
Anonymous voting

public class Quest {
    {
        System.out.println(i);
    }
    int i;
    
    public Quest(int i){
        this.i = i;
    }
    
    public static void main(String[] args) {
        new Quest(1);
    }
}

⌨️📚 Чистый код. Объекты и структуры данных ✅ Ты должен работать с абстракциями, чтобы реализацию можно было легко изменить. ✅ Ты должен работать с абстракциями, потому что клиент, использующий функционал, не должен знать о деталях реализации, он должен знать какую реализацию в каком случае использовать. ✅ Ты должен предоставлять API, с которым стоит работать и скрывать детали реализации, структуру. Так будет проще работать с такими сущностями и добавлять новые виды поведений, функционала и реализаций. ✅ DTO — Data Transfer Object. Класс, который содержит только данные и никакого функционала. Нужен для того, чтобы передавать какие-то данные. Объект такого класса должен быть неизменяемым.

Мечтаешь об успешной карьере в Java-разработке, но не знаешь, с чего начать ❓ Прокачайся бесплатно в ИТ-лагере T1.Дебют! 🌟 Приглашаем студентов и выпускников всей страны в ИТ-лагерь — это новый образовательный интенсив для Java-разработчиков от Холдинга Т1 — крупнейшей ИКТ-компании в России по версии RAEX 2023. ИТ-лагерь проходит в два этапа: 1 месяц онлайн-обучения и неделя летнего атмосферного офлайн-буткемпа! ☀️ Гибкий формат позволяет совмещать обучение в ИТ-лагере со сдачей сессии или работой. Финалисты получат сертификат на оплачиваемую стажировку, а лучших выпускников с опытом сразу пригласят в команду Т1. 🗓 Подай заявку до 31 мая Реклама. ООО "Т1". ИНН 7720484492.

⌨️ Полезные стримы. Поиск максимального Дан список людей с именем и возрастом. Нужно найти самого старшего.

import java.util.Comparator;
import java.util.List;

record Person(String name, int age) {}

public class StreamExample {
    public static void main(String[] args) {
        List<Person> people = List.of(
                new Person("Alice", 30),
                new Person("Bob", 20),
                new Person("Charlie", 40)
        );

        people.stream()
        .max(Comparator.comparingInt(Person::age))
        .ifPresent(person -> System.out.println("Oldest person: " + person.name()));
        // Вывод: Oldest person: Charlie
    }
}

Кошка говорит «мяу», собака говорит «гав», Java-разработчик говорит «кто-нибудь видел мой энергетик? А то мне еще баги исправ
Кошка говорит «мяу», собака говорит «гав», Java-разработчик говорит «кто-нибудь видел мой энергетик? А то мне еще баги исправлять». Да, быть разработчиком на Java непросто. Но нет ничего невозможного, если у вас есть желание разобраться и двухнедельный подготовительный курс от Хекслета за 990 рублей. – 62 онлайн-урока; – 4 живых вебинара; – практика с первого дня; – помощь наставника в закрытом чате. Нет опыта? Не беда! Как говорят в IT-среде: «А что, если попробовать так?» И мы тоже говорим вам “Попробуйте” ⏰ Cтарт уже 29 мая!

Что выведет код?
Anonymous voting

public class Quest {
    
    public static void main(String[] args) {
        System.out.println(condition(null) ? 1 : 2);
    }

    public static boolean condition(Number o) {
        return true;
    }

    public static boolean condition(Long l) {
        return false;
    }

}

Какие побитовые операции вы знаете?
~    Побитовый унарный оператор NOT;
&    Побитовый AND;
&=   Побитовый AND с присваиванием;
|    Побитовый OR;
|=   Побитовый OR с присваиванием;
^    Побитовый исключающее XOR;
^=   Побитовый исключающее XOR с присваиванием;
>>   Сдвиг вправо (деление на 2 в степени сдвига);
>>=  Сдвиг вправо с присваиванием;
>>>  Сдвиг вправо без учёта знака;
>>>= Сдвиг вправо без учёта знака с присваиванием;
<<   Сдвиг влево (умножение на 2 в степени сдвига);
<<=  Сдвиг влево с присваиванием.

В IT берут без опыта Однако эта сфера – быстрый буст только для тех, кто умеет правильно проходить собеседования. Важно знать
В IT берут без опыта Однако эта сфера – быстрый буст только для тех, кто умеет правильно проходить собеседования. Важно знать: – Крупные компании берут людей по специальным критериям. Есть 10 навыков, без которых классных заказчиков можно не ждать – 5 простых шагов, чтобы обойти конкурентов в нише и устроиться в хорошую компанию даже будучи начинающим разработчиком – Какие проекты и фичи разрабатывать, чтобы произвести приятное впечатление на рекрутеров Об этом, а также о том, как искать лучшие вакансии в IT, сделать портфолио идеальным для работодателя и получить желанный оффер от 100 000 рублей - на онлайн-эфире от FAANG School. Полезные подарки уже доступны: - Подробный гайд «Как найти работу в IT» - Пошаговый Roadmap по Java - Шпаргалка «Hotkey JetBrains IDE» - Шпаргалка по Rest API Переходите и узнайте, как устроиться в Сбер, Тинькофф, Яндекс и Вконтакте.

⌨️ Виды классов 1. Обычные классы (Regular Classes) Это наиболее распространенные классы, которые вы создаете для определения объектов. Они могут содержать поля, методы, конструкторы и вложенные классы.

public class MyClass {
    private int field;

    public MyClass(int field) {
        this.field = field;
    }

    public void method() {
        // some code
    }
}
2. Абстрактные классы (Abstract Classes) Абстрактные классы не могут быть созданы как объекты напрямую. Они предназначены для предоставления общей функциональности, которую подклассы должны реализовать или дополнить.

public abstract class AbstractClass {
    public abstract void abstractMethod();

    public void concreteMethod() {
        // some code
    }
}
3. Вложенные классы (Nested Classes) Классы, объявленные внутри другого класса. Они могут быть статическими или нестатическими. 🔹 Статические вложенные классы (Static Nested Classes): Эти классы могут быть созданы без экземпляра внешнего класса.

public class OuterClass {
    static class StaticNestedClass {
        // some code
    }
}
🔹 Внутренние классы (Inner Classes): Эти классы имеют доступ ко всем членам внешнего класса и создаются в контексте экземпляра внешнего класса.

public class OuterClass {
    class InnerClass {
        // some code
    }
}
4. Локальные классы (Local Classes) Классы, объявленные внутри метода, конструктора или блока. Они имеют доступ к финальным переменным из охватывающего метода.

public class OuterClass {
    public void method() {
        class LocalClass {
            // some code
        }
        LocalClass local = new LocalClass();
    }
}
5. Анонимные классы (Anonymous Classes) Классы без имени, создаваемые на месте для реализации интерфейса или наследования от класса. Часто используются для создания экземпляров интерфейсов или абстрактных классов.

public class OuterClass {
    public void method() {
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                // some code
            }
        };
    }
}
6. Перечисления (Enums) Специальные классы, представляющие набор констант. Они могут содержать поля, методы и конструкторы.

public enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
7. Интерфейсы (Interfaces) Технически не классы, но важная часть объектно-ориентированного программирования в Java. Интерфейсы определяют контракты, которые должны быть реализованы классами.

public interface MyInterface {
    void myMethod();
}
8. Записи (Records) Нововведение в Java 14 (в предварительном виде) и официально в Java 16. Они предоставляют компактный способ создания неизменяемых классов с полями и автоматически сгенерированными методами, такими как equals, hashCode и toString.

public record Point(int x, int y) {}
#java #classes