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

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

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
6 954
Obunachilar
-124 soatlar
-117 kunlar
+1330 kunlar
Postlar arxiv
⌨️ ORM и JPA ORM (Object-Relational Mapping) — это технология, которая позволяет автоматически преобразовывать данные между объектами в программном коде и записями в реляционной базе данных. Благодаря ORM, программисты могут работать с базой данных на уровне объектов, а не SQL-запросов, что упрощает разработку. JPA (Java Persistence API) — это стандарт спецификации ORM в Java. JPA определяет набор интерфейсов и аннотаций для работы с объектами и их сохранением в базу данных. Однако JPA сама по себе не является реализацией, а только задает стандарт. Реализации JPA включают Hibernate, EclipseLink и другие. #java #jpa

⌨️ POJO (Plain Old Java Object) — это простой Java-объект, не зависящий от каких-либо специфичных библиотек, фреймворков или технологий. Такой объект обычно содержит только поля (атрибуты) и методы доступа (геттеры и сеттеры), без дополнительной логики, аннотаций или наследования от специфических классов. Пример POJO:

public class Person {
    private String name;
    private int age;

    // Конструктор
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Геттеры и сеттеры
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
POJO используется для создания простых объектов без привязки к какой-либо специфической архитектуре или фреймворку. Например, в JPA объекты-сущности часто являются POJO, что позволяет их использовать независимо от платформы. #java #pojo

Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специал
+9
Помощь в трудоустройстве в IT-сфере! В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специалистов. Теперь любой желающий может попробовать себя в IT с полного нуля и начать обучение бесплатно! Узнайте про дальнейшее трудоустройство в ведущие IT-компании для восполнения кадрового дефицита. Для этого нужно: - Перейти по ссылке - Заполнить анкету и ответить на вопросы (занимает менее 3 минут) - На основании ваших ответов вы сразу узнаете, подходит ли вам сфера IT и сможете ли вы в ней работать Перейти на сайт #реклама 16+ urban-university.ru О рекламодателе

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

public class Survive {
    private Survive internalInstance = new Survive();

    public Survive() throws Exception {
        throw new Exception("I'm not coming out");
    }

    public static void main(String[] args) {
        try {
            Survive b = new Survive();
            System.out.println("WIN!");
        } catch (Exception ex) {
            System.out.println("LOSE!");
        }
    }
}
#java #quest

⌨️ Логические операторы «И» (AND): конъюнкция, логическое умножение

true  && true  = true
false && false = false
true  && false = false
false && true  = false

true  & true  = true
false & false = false
true  & false = false
false & true  = false

Побитовые операции:
1010
&&&&
1001
====
1000
Включающее «ИЛИ» (OR): дизъюнкция, логическое сложение

true  || true  = true
false || false = false
true  || false = true
false || true  = true

true  | true  = true
false | false = false
true  | false = true
false | true  = true

Побитовые операции:
1010
||||
1001
====
1011
Исключающее «ИЛИ» (XOR): строгая дизъюнкция, логическое вычитание

true  ^ true  = false
false ^ false = false
true  ^ false = true
false ^ true  = true

Побитовые операции:
1010
^^^^
1001
====
0011
«НЕ» (NOT): инверсия, отрицание

!true  = false
!false = true

Побитовый унарный оператор NOT:
~~
01
==
10
Порядок выполнения операторов Когда в выражении несколько логических операторов, результат вычисляется с учётом их приоритета. Если нет логических скобок, то операции выполняются в таком порядке:
!  ~ (NOT)
& (AND)
^ (XOR)
| (OR)
&& (условный AND)
|| (условный OR)
Если одинаковые операции стоят по соседству, то раньше выполняется та, что левее.

Интересный факт - стектрейс можно прочитать и сверху вниз и снизу вверх. 🕵🏻Хочешь захватывающий детектив - читай сверху вни
Интересный факт - стектрейс можно прочитать и сверху вниз и снизу вверх. 🕵🏻Хочешь захватывающий детектив - читай сверху вниз и с каждой главой приближайся к личности убийцы. 😢Хочешь остросюжетную драму и историю крушения в хронологическом порядке - читай снизу вверх и лей слезы, глядя как медленно умирает запущенная программа. А о том, почему все проблемы от синего - читай на инфографике. #java #debug #автотесты

Наткнулся на интересный пост про исключения в другом канале.

⌨️ Семейство классов *SummaryStatistics Классы DoubleSummaryStatistics, IntSummaryStatistics и LongSummaryStatistics служат для хранения агрегированных данных о числовом потоке. А конкретно: количество, сумма, минимальное, максимальное и среднее. Пример:

List<Integer> iList = List.of(1, 2, 3);
IntSummaryStatistics stats = iList.stream().collect(Collectors.summarizingInt(i -> i));
System.out.println(stats);
// IntSummaryStatistics{count=3, sum=6, min=1, average=2,000000, max=3}
#java #IntSummaryStatistics #DoubleSummaryStatistics #LongSummaryStatistics

Короче, ищем менторов — Middle и Senior Java-разработчиков Ищем в ШОРТКАТ — менторскую платформу от команды разработчиков из
Короче, ищем менторов — Middle и Senior Java-разработчиков Ищем в ШОРТКАТ — менторскую платформу от команды разработчиков из бигтеха. Мы помогаем найти крутую работу, апнуть грейд или сменить стек. Что надо будет делать: проводить тестовые собесы → оценивать грейд → помогать разбираться в сложных темах. Что взамен: От 40К за 5-7 часов работы в неделю Доступ к обучению и комьюнити сильных менторов из Booking, Сбер, Oracle, Tinkoff Возможность выступать на эфирах, куда уже приходят 500+ джавистов, и стать заметнее на рынке Заполняй форму — свяжемся и расскажем подробности ➡️ https://forms.gle/rFY9z9GKggqfgSS76 Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid 2VtzqwfQhLM

⌨️ Несколько способов избежать NullPointerException: ✔️ Используйте класс Optional из пакета java.util для работы с потенциально пустыми значениями. ✔️ При сравнении константы с переменной, полученной извне, вызывайте метод equals() на константе, а не на переменной. ✔️ Для сравнения двух переменных используйте метод java.util.Objects#equals. ✔️ Применяйте библиотеки, обеспечивающие null-безопасность, например, Apache Commons StringUtils. ✔️ Всегда вызывайте методы equals() и equalsIgnoreCase() на объектах, которые гарантированно не равны null. ✔️ Вместо метода toString(), который может вызвать NullPointerException, используйте String.valueOf(). ✔️ Используйте аннотации @NotNull и @Nullable, доступные в вашей IDE, для указания допустимости null. ✔️ Возвращайте пустую коллекцию (например, java.util.Collections#emptyList) вместо null при работе с коллекциями в методах. #java #NullPointerException #Optional

⌨️ Вычислить максимальное значение в одну строку В этом нам помогут наши любимые стримы. Так:
List<Integer> iList = List.of(1,2,3,4,5);
Integer max = iList.stream().reduce(Integer::max).orElse(null);
System.out.println(max);
А еще лучше вот так:
List<Integer> iList = List.of(1,2,3,4,5);
iList.stream().reduce(Integer::max).ifPresent(System.out::println);
#java #Stream #max

♨️Clojure в действии: как он меняет правила игры для бэкенд-разработчиков? Приглашаем вас на открытый вебинар 3 октября в 20:
♨️Clojure в действии: как он меняет правила игры для бэкенд-разработчиков? Приглашаем вас на открытый вебинар 3 октября в 20:00 мск, где мы обсудим: - с какими задачами сталкиваются разработчики Clojure; - основные особенности и преимущества Clojure по сравнению с другими языками; - какие возможности и перспективы предлагает Clojure для разработчиков.  Встречаемся в преддверии старта курса «Clojure Developer». Все участники вебинара получат специальную цену на обучение!  ➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: РЕГИСТРАЦИЯ Ждем вас!  Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

⌨️ Stream.reduce() vs Collectors.joining() Когда требуется конкатенировать строки с использованием Stream, можно выбрать один из двух методов: Stream.reduce() или Stream.collect(Collectors.joining()). Пример с Stream.reduce():
List<String> list = List.of("Str1", "Str2", "Str3");
String result = list.stream().reduce("", (a, b) -> a + b);
System.out.println(result); // Str1Str2Str3
Пример с Collectors.joining():
List<String> list = List.of("Str1", "Str2", "Str3");
String result = list.stream().collect(Collectors.joining());
System.out.println(result); // Str1Str2Str3
Использование reduce() для конкатенации строк не является оптимальным с точки зрения производительности. При каждом вызове операции +, создается новая строка, так как строки в Java неизменяемы. Это приводит к увеличению нагрузки на память из-за создания множества промежуточных объектов. В свою очередь, метод Collectors.joining() использует StringBuilder для сборки строк, что значительно эффективнее. Он избегает создания лишних объектов и снижает потребление памяти. #java #Stream #reduce #joining

Cамый простой способ изучить Java — залезть в голову профи Один из лучших айтишников России учит базе кодинга в Telegram. Даже гуманитарий поймёт, как создавать приложения, сайты, игры и чат-боты. Достаточно подписаться на «Секреты Java», где каждый день появляются гайды, готовые примеры кода и лучших практик. И всё это бесплатно — вместо сотен тысяч рублей за курсы. Стартовать в прибыльной профессии с нуля вы сможете гораздо проще! Теперь обучиться Java может каждый: @java_secrets

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

public class Quest {
    public static void main(String[] args) {
        Integer a = 128;
        Integer b = 128;
        System.out.print(a == b);
        
        System.out.print("-");

        Integer x = 1;
        Integer y = 1;
        System.out.print(x == y);
    }
}
#java #quest

👩‍💻 Java уже в Telegram! Вот обширная база контента по разработке на Java, которая ежедневно пополняется новыми постами: Об
👩‍💻 Java уже в Telegram! Вот обширная база контента по разработке на Java, которая ежедневно пополняется новыми постами: Обучение Java с нуля Обучение Spring с нуля Обучение Hibernate с нуля Обучение JUnit с нуля Обучение Maven с нуля 📌 Ресурсы, гайды, шпаргалки, задачи и книги — всё собрано в одном месте: @java_ready

photo content