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

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

前往频道在 Telegram

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

显示更多
6 820
订阅者
+724 小时
-97
-6030
帖子存档
Никогда не используй CascadeType.ALL вместе с @ManyToMany На StackOverflow не всегда первый (и даже отмеченный как правильный) ответ является верным. Например, столкнувшись с org.hibernate.TransientObjectException и обратившись за решением на StackOverflow, вы можете найти ответ, который приведет к потере данных. Часто советуют использовать CascadeType.ALL. Однако, применив этот совет для ассоциации @ManyToMany, вы рискуете потерять множество записей в базе данных без вашего согласия. О том, почему нельзя использовать CascadeType.ALL с @ManyToMany рассказали в новом видео от Amplicode. Хочешь больше подобного контента? Подписывайся на канал Amplicode на YouTube! Реклама. ООО "ХОУЛМОНТ". ИНН 6316134393

⌨️ Полезные стримы. Сортировка Отсортировать список с помощью стрима можно используя метод sorted():

var list = List.of(10, 5, 7, 3);
var sortedList = list.stream()
        .sorted()
        .toList();
sortedList.forEach(System.out::println);
// 3 5 7 10
Можно передать Comparator:

var list = List.of(10, 5, 7, 3);
var sortedList = list.stream()
        .sorted(Comparator.reverseOrder())
        .toList();
sortedList.forEach(System.out::println);
// 10 7 5 3
#java #stream #sorted

📚 Здесь собраны все вопросы, которые могут спросить на собеседовании. Теперь можно легко получить оффер, подготовившись к са
📚 Здесь собраны все вопросы, которые могут спросить на собеседовании. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам. Просто выбери своё направление: 1. Frontend / JavaScript 2. Python 3. Java 4. Тестировщик QA 5. Data Science 6. DevOps 7. C# 8. С/C++ 9. Golang 10. PHP 11. Kotlin 12. Swift

⌨️ Несколько способов для избежания 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;
    }
}