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

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

الذهاب إلى القناة على Telegram

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

إظهار المزيد
6 824
المشتركون
+724 ساعات
-97 أيام
-6030 أيام
أرشيف المشاركات
⌨️ Что такое перечисления (enum)? Перечисления представляют набор логически связанных констант. Нужны для ограничения области допустимых значений: например, времена года, дни недели. Перечисление фактически представляет новый класс, поэтому мы можем определить переменную данного типа и использовать ее. Перечисления, как и обычные классы, могут определять конструкторы, поля и методы. Следует отметить, что конструктор по умолчанию приватный. Преимуществом Еnum перед обычными константами является возможность проверки типа данных. К недостаткам относится невозможность применения операторов >, <, >=, <=, а так же большее потребление памяти по сравнению с обычными константами. Встроенные методы: - ordinal() возвращает порядковый номер определенной константы (нумерация начинается с 0) - values() возвращает массив всех констант перечисления

public enum Day {
    MONDAY("понедельник"),
    TUESDAY("вторник"),
    WEDNESDAY("среда"),
    THURSDAY("четверг"),
    FRIDAY("пятница"),
    SATURDAY("суббота"),
    SUNDAY("воскресенье");
    
    Day(String value) {
        this.value = value;
    }
    
    String value;
    
    public String getValue() {
        return value;
    }

}

public class EnumClass {
    public static void main(String[] args) {
        System.out.println(message(Day.FRIDAY));
    }
    public static String message(Day day) {
        return "Это " + day.getValue();
        // Это пятница
    }
}

🔥 Пройди тест по Java и проверь свои знания. Ответишь — пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене до 21.04 + получишь доступ к записям открытых уроков курса курса 👉  ПРОЙТИ ТЕСТ: https://otus.pw/TAEL/?erid=LjN8K6LJt

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

public class Quest {
    public static void main(String[] args) {
        System.out.println("5" + true);
    }
}

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

public class Quest {
    public static void main(String[] args) {
        System.out.println(5 + true);
    }
}

Два джуна померджили свои ветки
Два джуна померджили свои ветки

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

public class Quest {
    public static void main(String[] args) {
        System.out.println(calc());
    }

    static int calc() {
        try {
            if (1 == 1)
                throw new RuntimeException();
            return 1;
        } catch (Exception e) {
            return 2;
        } finally {
            return 3;
        }
    }
}

☕️Использование ORM фреймворков ORM (Object-Relational Mapping) фреймворки в Java позволяют программистам работать с базами данных, представляя данные в виде объектов, что упрощает процесс взаимодействия с БД. Несколько популярных технологий: 1. JPA (Java Persistence API): Стандартная спецификация для работы с объектно-реляционным отображением в Java. Пример использования JPA с Hibernate провайдером:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("myPU");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Employee employee = new Employee("Jane", "Smith", 1200);
em.persist(employee);
em.getTransaction().commit();
em.close();
2. Hibernate: Один из наиболее широко используемых ORM-фреймворков в Java. Пример кода для сохранения объекта в базе данных с использованием Hibernate:

Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Employee employee = new Employee("John", "Doe", 1000);
session.save(employee);
session.getTransaction().commit();
session.close();
3. Spring Data JPA: Часть Spring Data, облегчающая работу с JPA. Пример использования Spring Data JPA для поиска сущности по идентификатору:

Employee employee = employeeRepository.findById(1L).orElse(null);
4. MyBatis: Фреймворк, который предоставляет более SQL-центричный подход к ORM. Пример маппинга объекта на SQL запрос с помощью MyBatis:

<select id="selectEmployeeById" resultType="Employee">
    SELECT * FROM employees WHERE id = #{id}
</select>
ORM фреймворки упрощают работу с базами данных в Java, позволяя разработчикам оперировать объектами вместо SQL запросов, что улучшает производительность и поддерживаемость кода. Каждый из перечисленных фреймворков имеет свои особенности и преимущества, поэтому выбор зависит от конкретных потребностей проекта.

⌨️ Рассказываем о Java простыми словами. Рассматриваем и обсуждаем примеры кода, лучшие практики и свежие тенденции в програм
⌨️ Рассказываем о Java простыми словами. Рассматриваем и обсуждаем примеры кода, лучшие практики и свежие тенденции в программировании на Java. Присоединяйся, если любишь Java как и мы - https://t.me/java_secrets 📲

🌱 Аннотация @Transactional в Spring Framework используется для указания, что метод должен быть выполнен в рамках транзакции базы данных. Транзакция - это логическая единица работы с базой данных, которая обеспечивает атомарность, согласованность, изолированность и устойчивость (ACID) операций. Когда метод помечается аннотацией @Transactional, Spring создает транзакцию перед выполнением метода, и завершает ее после выполнения метода. Если метод выполняется успешно, транзакция фиксируется (commit). Если возникает исключение, транзакция откатывается (rollback), и изменения, сделанные в рамках транзакции, отменяются. Пример использования @Transactional в Spring:

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class UserService {

    private final UserRepository userRepository;

    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    @Transactional
    public void updateUser(User user) {
        // Логика обновления пользователя в базе данных
        userRepository.save(user);
    }

    @Transactional(readOnly = true)
    public User getUserById(Long userId) {
        // Логика получения пользователя из базы данных
        return userRepository.findById(userId).orElse(null);
    }
}
В этом примере метод updateUser() помечен как @Transactional, поэтому все операции базы данных, выполняемые внутри этого метода, будут выполнены в рамках одной транзакции. То же самое относится и к методу getUserById(), который также помечен аннотацией @Transactional, но с параметром readOnly = true, что указывает, что этот метод только читает данные из базы данных и не делает изменений. Использование @Transactional позволяет управлять транзакциями на уровне методов, что делает код более чистым и поддерживаемым, а также обеспечивает надежность взаимодействия с базой данных.

Из джуна в мидла вместе с Холдингом Т1🚀 Приглашаем java-разработчиков в Открытые школы Т1! 🎓 Открытые школы Т1 — это новая
+5
Из джуна в мидла вместе с Холдингом Т1🚀 Приглашаем java-разработчиков в Открытые школы Т1! 🎓 Открытые школы Т1 — это новая карьерная программа для IТ-специалистов, объединяющая обучение без отрыва от работы и offer weeks. 👨‍💻 Для участия необходим опыт работы java-разработчиком от 1 года, а также желание присоединиться к команде Т1. Т1 занимает 2 место среди крупнейших ИКТ-компаний по версии RAEX 2023 и является партнёром ключевых производителей и разработчиков в сфере ИТ. В программу входит: spring framework; docker; синхронное и асинхронное взаимодействие, брокеры сообщений; паттерны, SOLID ⏰ Длительность 1 месяц. 💻 Формат: онлайн по вечерам (от 8 часов в неделю на вебинары и практику). Лучшим назначим интервью и направим оффер! 📌 Подробнее о программе — в карточках внутри поста. Принимаем заявки до 22 апреля! 🚀 Реклама. ООО "Т1". ИНН 7720484492.

⌨️📚 Чистый код. Классы ✅ Классы должны быть компактными. ✅ Классы должны быть еще компактнее. ✅ Имя класса должно описывать его ответственности. Отсюда можно и вычислить размер класса. ✅ Функционал класса должен четко соответствовать и вписываться в название класса. ✅ Разделяй связанность на маленькие классы. Жесткой и обильной связанности не должно быть — это усложняет поддержку и развитие проекта. ✅ Помни о Single Responsibility. Сущность должна иметь одну и только одну причину для изменения. ✅ Соблюдай инкапсуляцию. Ослабление инкапсуляции всегда должно быть последней мерой. ✅ Обычно мы объявляем переменные и вспомогательные функции приватными, но иногда их нужно объявлять protected и иметь возможность обратиться к ней из теста. ✅ Если группа функций относится к определенному функционалу, то эту группу функций можно и нужно выделить в отдельный класс и использовать его экземпляр.

Machine Learning не для меня? Все об ML простыми словами Бесплатный практикум от Karpov.Courses Этапы развития проектов в обл
Machine Learning не для меня? Все об ML простыми словами Бесплатный практикум от Karpov.Courses Этапы развития проектов в области машинного обучения Что вас ждет на вебинаре: » Разберетесь на практике, из каких стадий состоит проект по ML » Поймете, что в реальности нужно уметь делать, кроме обучения модели » Узнаете, почему важна каждая стадия в машинном обучении С помощью машинного обучения можно: » автоматизировать задачи для экономии времени и средств » принимать более рациональные решения на основе данных » персонализировать опыт клиентов » быстрее внедрять инновации Спикер: Эмиль Каюмов, Techlead платформы экспериментов в Яндекс Еде Начало вебинара 17 апреля в 19:00 по мск Подарок за регистрацию! Зарегистрироваться #реклама 16+ karpov.courses О рекламодателе

☕️Использование прикладных шаблонов проектирования - для улучшения качества кода Применение шаблонов проектирования позволяет повысить читаемость, расширяемость и поддерживаемость кода, а также уменьшить количество дублирующегося кода и повысить его стабильность. Одним из распространенных шаблонов проектирования является "Singleton", который гарантирует, что у класса есть только один экземпляр, и обеспечивает глобальную точку доступа к этому экземпляру. Пример кода для реализации шаблона Singleton:

public class SingletonExample {
    private static SingletonExample instance;

    private SingletonExample() {
        // Приватный конструктор
    }

    public static SingletonExample getInstance() {
        if (instance == null) {
            instance = new SingletonExample();
        }
        return instance;
    }
}
Объяснение: - Приватный конструктор предотвращает создание экземпляров класса извне. - Статическое поле "instance" хранит единственный экземпляр класса. - Метод "getInstance()" проверяет, существует ли уже экземпляр класса, и возвращает его. Если экземпляр не создан, то он создается и затем возвращается. ⚙️Использование шаблона Singleton в данном случае обеспечивает гарантированный единственный экземпляр класса в рамках приложения, что является полезным для создания объектов, представляющих синглтоны, такие как логгеры или конфигурационные объекты.

🔥 Пройди тест по Java и проверь свои знания. Ответишь — пройдешь на продвинутый курс «Java Developer. Professional» от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса 🔝 Обновленная, расширенная программа 👉  ПРОЙТИ ТЕСТ: https://otus.pw/9FJV/?erid=LjN8KJqTu

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

public class Counter {

    public static void main(String[] args) {
        int counter = 0;
        counter = counter++;
        System.out.println(counter);
    }

}

Курс по Java-разработке с гарантией трудоустройства Стань Java-разработчиком за 9 месяцев. В финале курса гарантированное тру
Курс по Java-разработке с гарантией трудоустройства Стань Java-разработчиком за 9 месяцев. В финале курса гарантированное трудоустройство с зарплатой от 100 тыс. рублей. Все условия будут закреплены в твоем договоре с Kata Academy Главное про курс по Java: — обучение до уровня junior+ или middle — оплата курса после трудоустройства из фактической зарплаты — трудоустройство в Москве или Санкт-Петербурге — в программе курса: теория, практика, групповой проект, подготовка к трудоустройству — поддержка менторов, HR-консультантов, комьюнити — выпускник получает минимум три оффера на работу — минимальная зарплата сразу после курса — 100 тыс. рублей, средняя зарплата выпускников через год после курса — 221 тыс. рублей Для поступления нужно сделать тестовое задание. Оставь заявку по ссылке! Узнать больше #реклама 16+ kata.academy О рекламодателе