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

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

Ir al canal en Telegram

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

Mostrar más
6 951
Suscriptores
+124 horas
-107 días
+1230 días
Archivo de publicaciones
⌨️ Несколько способов для избежания NullPointerException: ✔️ Используйте Optional из пакета java.util. ✔️ При сравнении константы с переменной пришедшей из вне, нужно вызывать equals() на константе. ✔️ А при сравнении двух переменных используйте java.util.Objects#equals. ✔️ Используйте библиотеки с null-безопасностью, например, Apache Commons StringUtils. ✔️ Вызывайте методы equals() и equalsIgnoreCase() на известных объектах. ✔️ Применяйте valueOf() вместо toString(). ✔️ Воспользуйтесь аннотациями @NotNull и @Nullable на основе IDE. ✔️ При возврате из метода коллекций, не стоит возвращать null, лучше пустую коллекцию (java.util.Collections#emptyList). #java #NullPointerException #Optional

«Код Ход Шоу» от Т-Банка для тех, кто работает на Java или только вкатывается: — Необычный формат крестиков-ноликов. Участник
«Код Ход Шоу» от Т-Банка для тех, кто работает на Java или только вкатывается: — Необычный формат крестиков-ноликов. Участникам задают вопросы на знание Java, и если они отвечают правильно — могут поставить знак. — Команды разработчиков из бигтеха (Т-Банк, Яндекс, Вертикаль, X5 Tech, Сбер, Samokat. tech и другие). — Победитель проходит дальше, а в финале встретятся две лучшие команды. Смотрите ютуб-шоу и подписывайтесь на телеграм-канал с анонсами новых выпусков и другими полезными материалами по Java. erid:2VtzqvgzshZ Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673

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

public class Quest {
    public static void main(String[] args) {
        String str1 = "Hello World";
        String str2 = new String("Hello World");

        Set<String> set = new HashSet<>();
        set.add(str1);
        set.add(str2);
        
        for (String str : set) {
            if (str == str1) {
                System.out.print("origin ");
            }
            if (str == str2) {
                System.out.print("replace ");
            }
        }
    }
}

Прокачай скиллы, чтобы получить заветный оффер Ребята из команды FAANG School собрали в одном месте гайды, шпаргалки, мануалы
Прокачай скиллы, чтобы получить заветный оффер Ребята из команды FAANG School собрали в одном месте гайды, шпаргалки, мануалы и чек-листы, в общем всё, что поможет стать сильными профессионалами. Основные концепции Docker, наборы команд в JetBrains, пошаговая RoadMap по Java и множество других полезных материалов будут всегда под рукой, помогут быстро справиться со сложными вопросами и тем самым приблизят вас к высокой зп. Библиотечный каталог постоянно пополняется, а значит, будет еще больше ценного контента. Бесплатно и навсегда! Переходи, заглядывай в библиотеку и сохраняй полезности, если хочешь увеличить шансы устроиться в Яндекс, Amazon, Google и другие. Попасть в библиотеку JAVA JUNIOR

⌨️ Верно ли утверждение, что примитивные типы данных всегда хранятся в стеке, а экземпляры ссылочных типов данных в куче? Не совсем. Примитивное поле экземпляра класса хранится не в стеке, а в куче. Любой объект (всё, что явно или неявно создаётся при помощи оператора new) хранится в куче. #java #heap #stack #question

#java #meme

⌨️ Что такое Heap и Stack память в Java? Какая разница между ними? Heap (куча) используется Java Runtime для выделения памяти под объекты и классы. Создание нового объекта также происходит в куче. Это же является областью работы сборщика мусора. Любой объект, созданный в куче, имеет глобальный доступ и на него могут ссылаться из любой части приложения. Stack (стек) это область хранения данных также находящееся в общей оперативной памяти (RAM). Всякий раз, когда вызывается метод, в памяти стека создается новый блок, который содержит примитивы и ссылки на другие объекты в методе. Как только метод заканчивает работу, блок также перестает использоваться, тем самым предоставляя доступ для следующего метода. Размер стековой памяти намного меньше объема памяти в куче. Стек в Java работает по схеме LIFO (Последний-зашел-Первый-вышел) Различия между Heap и Stack памятью: ✔️ Куча используется всеми частями приложения, в то время как стек используется только одним потоком исполнения программы. ✔️ Всякий раз, когда создается объект, он всегда хранится в куче, а в памяти стека содержится лишь ссылка на него. Память стека содержит только локальные переменные примитивных типов и ссылки на объекты в куче. ✔️ Объекты в куче доступны с любой точки программы, в то время как стековая память не может быть доступна для других потоков. ✔️ Стековая память существует лишь какое-то время работы программы, а память в куче живет с самого начала до конца работы программы. ✔️ Если память стека полностью занята, то Java Runtime бросает исключение java.lang.StackOverflowError. Если заполнена память кучи, то бросается исключение java.lang.OutOfMemoryError: Java Heap Space. ✔️ Размер памяти стека намного меньше памяти в куче. ✔️ Из-за простоты распределения памяти, стековая память работает намного быстрее кучи. Для определения начального и максимального размера памяти в куче используются -Xms и -Xmx опции JVM. Для стека определить размер памяти можно с помощью опции -Xss. #java #heap #stack #memory

Как разработчику увеличить доход минимум в два раза? Освоить навыки по Kubernetes – самому востребованному направлению в 2024 году. Что это за зверь такой, с чем его едят и как быстро его понять, рассказывает SRE Lead в MTS Digital и преподаватель курсов Слёрма Кирилл Борисов в своём канале. Переходите и узнайте, как «кубы» могут пригодиться в работе, какие возможности открывают и прокачайте текущие скиллы. Для всех новых подписчиков подготовили гайд «Как работает etcd с Kubernetes и без него» Подписывайтесь, забирайте, изучайте и применяйте. Потом спасибо скажете 👉 @Kubernetes_Borisov Реклама. ИП Аердинов Никита Вадимович ИНН 638103515932 erid: LjN8K7zVy

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

public class Quest {
    public static void main(String[] args) {
        int i=0;
        label1: System.out.print(i++);
        if (i < 2) {
            goto label1;
        }
    }
}
#java #quest

⌨️ Проброс исключений Иногда возникает необходимость передать исключение дальше по стеку вызовов, чтобы оно было обработано на более высоком уровне. Для этого можно использовать ключевое слово throws в сигнатуре метода и не перехватывать исключение в блоке catch, либо пробросить исключение дальше внутри блока catch.

public void someMethod() throws IOException {
    try {
        // код, который может выбросить IOException
    } catch (IOException e) {
        // возможно, выполнить какую-то обработку
        throw e; // проброс исключения дальше
    }
}
#java #throw #throws

Внимание, разработчики! Приглашаем вас на открытый вебинар по алгоритмам и структурам данных от опытного практикующего экспер
Внимание, разработчики! Приглашаем вас на открытый вебинар по алгоритмам и структурам данных от опытного практикующего эксперта💯 Ждём вас на уроке «Визуальное сравнение 1-2-3 алгоритмов сортировок» от OTUS, где мы: - подробно рассмотрим три алгоритма сортировок: Пузырьком, Вставкой и Шелла; - сравним их по различным критериям: сложность и количество обменов, стабильность и адаптивность; - напишем алгоритмы и сравним их быстродействие; - продемонстрируем их работу на игральных картах🂱️ 🔥 Спикер Евгений Волосатов — программист баз данных и преподаватель с огромным и разнообразным опытом, автор статей и учебных программ по C#, Java, PHP. Встречаемся 1 июля в 20:00 мск в преддверии старта курса «Алгоритмы и структуры данных». 🔴 Регистрируйтесь на урок и подписывайтесь на бота, чтобы ознакомиться с программой курса и забронировать спецскидку 10% (акция до 30 июня): https://otus.pw/1fZY/?erid=LjN8Jszu4

⌨️ DateTimeFormatter — это класс в Java, который используется для форматирования и парсинга дат и времени. Он предоставляет различные методы для преобразования объектов даты и времени в строку и наоборот. Этот класс является частью пакета java.time.format и был введен в Java 8 в рамках новой Date and Time API. DateTimeFormatter содержит предопределенные форматы, такие как ISO_LOCAL_DATE, ISO_LOCAL_TIME, ISO_LOCAL_DATE_TIME, BASIC_ISO_DATE и другие. Так же, DateTimeFormatter поддерживает создание пользовательских форматов с использованием шаблонов. Форматирование даты и времени:

LocalDateTime now = LocalDateTime.now();

// Использование предопределенного формата
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
String formattedDate = now.format(formatter);
System.out.println("ISO_LOCAL_DATE_TIME: " + formattedDate);
// ISO_LOCAL_DATE_TIME: 2024-06-20T21:46:43.584659

// Использование пользовательского формата
DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
String customFormattedDate = now.format(customFormatter);
System.out.println("Custom format: " + customFormattedDate);
// Custom format: 20-06-2024 21:46:43
Парсинг строки в дату и время:

String dateStr = "2024-06-20T15:30:00";

// Использование предопределенного формата
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
LocalDateTime dateTime = LocalDateTime.parse(dateStr, formatter);
System.out.println("Parsed date (ISO_LOCAL_DATE_TIME): " + dateTime);
// Parsed date (ISO_LOCAL_DATE_TIME): 2024-06-20T15:30

// Использование пользовательского формата
String customDateStr = "20.06.2024 15:30:00";
DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
LocalDateTime customDateTime = LocalDateTime.parse(customDateStr, customFormatter);
System.out.println("Parsed date (custom format): " + customDateTime);
// Parsed date (custom format): 2024-06-20T15:30
#java #DateTimeFormatter

🖥 Java - самый крупный обучающий ресурс в Telegram, посвященный изучению Java ! По контенту: 1. Собрали для вас лучшие бесплатные курсы по Java 2024 года. 2. 2250 вопросов с собесов с разбором от Senior разработчика. 3. Пишем пет-проекты на JAVA - лучшая практика. 4. А здесь я собрал лучшие ресурсы Java разработчика, тут и бесплтаные книги по Java и вакансии лдя джунов, много полезного. Подписывайтесь, такие знания в 2024-м году на вес золота: @javatg

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

public class Quest {
    public static void main(String[] args) {
        System.out.print(condition1() && condition2());
    }

    private static boolean condition1() {
        System.out.print(1);
        return false;
    }

    private static boolean condition2() {
        System.out.print(2);
        return true;
    }
}

⌨️ Что такое «анонимные классы»? Где они применяются? Это вложенный локальный класс без имени, который разрешено декларировать в любом месте обрамляющего класса, разрешающем размещение выражений. Создание экземпляра анонимного класса происходит одновременно с его объявлением. В зависимости от местоположения анонимный класс ведет себя как статический либо как нестатический вложенный класс - в нестатическом контексте появляется окружающий его экземпляр. Анонимные классы имеют несколько ограничений: ✔️ Их использование разрешено только в одном месте программы - месте его создания; ✔️ Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться; ✔️ Реализует лишь методы своего интерфейса или суперкласса, т.е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа. Анонимные классы обычно применяются для: ✔️ создания объекта функции (function object), например, реализация интерфейса Comparator; ✔️ создания объекта процесса (process object), такого как экземпляры классов Thread, Runnable и подобных; ✔️ в статическом методе генерации; ✔️ инициализации открытого статического поля final, которое соответствует сложному перечислению типов, когда для каждого экземпляра в перечислении требуется отдельный подкласс. #java #abstract #class

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

⌨️ Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними? ✅ Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным. ✅ Для создания объекта статического вложенного класса объект внешнего класса не требуется. ✅ Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса. ✅ Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут. ✅ В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статической такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание .this после его имени. Например: Outer.this. #java #nested #static #class