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 952
Obunachilar
+124 soatlar
-107 kunlar
+1230 kunlar
Postlar arxiv
Ну как там с фичами? Обсудите все рабочее и актуальное на JVM Day — конференции от Т-Банка для опытных Java- и Scala-разработ
Ну как там с фичами? Обсудите все рабочее и актуальное на JVM Day — конференции от Т-Банка для опытных Java- и Scala-разработчиков. В программе — 15+ докладов. В блоке по Java расскажут про фичи, инструменты и фреймворки. А по Scala — разберут подходы к бэкенд-разработке с использованием экосистемы и практику функционального программирования. После — афтепати с развлечениями, музыкой и фотозоной. Полезные знакомства тоже будут. Встреча пройдет 31 августа в штаб-квартире Т-Банка. Участие бесплатное. А регистрация тут. erid:2Vtzqx82QeZ Реклама. АО "ТБанк", ИНН 7710140679, лицензия ЦБ РФ № 2673

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

class Person {
    Long id;
    String name;

    public Person(Long id, String name) {
        this.id = id;
        this.name = name;
    }

    public boolean equals(Person other) {
        if (other == this) {
            return true;
        }
        return id != null && id.equals(other.id);
    }
}

public class Quest {
    public static void main(String[] args) {
        Person person1 = new Person(1L, "John");
        Person person2 = new Person(1L, "Jane");
        System.out.print(person1.equals(person2));
        System.out.print("-");
        System.out.print(Objects.equals(person1, person2));
    }
}
#java #quest

Какой интерфейс нужно реализовать в классе, чтобы объект этого класса можно было использовать в выражении "for-each" справа?
Anonymous voting

One Weekend Offer для Java-разработчиков 👨‍💻 Если вы — Java-разработчик уровня Middle/Senior/Lead с опытом работы от 3 лет,
One Weekend Offer для Java-разработчиков 👨‍💻 Если вы — Java-разработчик уровня Middle/Senior/Lead с опытом работы от 3 лет, то присоединяйтесь к команде Сбера! 31 августа – 1 сентября вы сможете пройти все этапы отбора, познакомиться с будущей командой и получить заветный оффер. Какие задачи будут в вашем планере? ▫️ Проводить декомпозицию и оценку задач. ▫️ Работать в тесной связке с аналитиками и разработчиками front-end. ▫️ Выполнять code review. ▫️ Проектировать архитектуру приложения. Наша команда разрабатывает высоконагруженные сервисы с использованием Cloud Native подхода к созданию, развёртыванию и управлению современными приложениями в средах облачных вычислений. Откликайтесь, и увидимся на выходных! 😉

⌨️ Суть лямбда-выражений Лямбда-выражения на первый взгляд могут показаться чем-то сложным и загадочным, но на самом деле они просты и интуитивно понятны. Лямбда-выражение — это лаконичный способ описания анонимной функции, которую можно передать в качестве параметра или сохранить в переменной для последующего использования. Если говорить ещё проще, лямбда-выражение — это просто другой способ создания и реализации объекта определённого типа. Рассмотрим это на примере создания нового потока. У класса Thread есть конструктор:

public Thread(Runnable target) {
    ...
}
То есть в конструктор нужно передать объект типа Runnable. До лямбда-выражений мы сделали бы так:

new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello World");
    }
}).start();
Здесь мы создаём анонимный класс, реализующий интерфейс Runnable, с определённым методом run. Если использовать лямбда-выражение, тот же код будет выглядеть следующим образом:

Runnable r = () -> System.out.println("Hello World");
new Thread(r).start();
Или проще:

new Thread(() -> System.out.println("Hello World")).start();
Лямбда-выражение заменяет собой анонимный класс, который раньше был бы необходим для реализации Runnable. Лямбда-выражение может использоваться только там, где ожидается реализация функционального интерфейса — интерфейса с единственным абстрактным методом. А интерфейс Runnable именно такой:

@FunctionalInterface
public interface Runnable {
    public abstract void run();
}
Функциональный интерфейс должен содержать только один абстрактный метод, чтобы компилятор мог точно определить, какой метод реализует лямбда-выражение. В противном случае возникли бы неоднозначности и ошибки. #java #lambda #Runnable

Java Джуниоры! Важное объявление FAANG School в течение 24 часов отдают бесплатно свою библиотеку знаний. Вы можете получить
Java Джуниоры! Важное объявление FAANG School в течение 24 часов отдают бесплатно свою библиотеку знаний. Вы можете получить доступ: – Подробный гайд, как найти работу в IT без опыта – Подборка платформ с вакансиями для java-разработчиков – Пошаговая RoadMap по Java – Мануал по Docker. Основные команды и концепции – Микросервисы. Вопросы с собеседований – Шпаргалка с горячими клавишами JetBrains IDE. Ускоришь работу в 10 раз – Desk setup. Подборка аксессуаров для комфортной работы – Шпаргалка по Kafka Библиотека знаний постоянно пополняется, но бесплатный доступ длится всего сутки. Чтобы получить полезные материалы, переходи по ссылке и жми на оранжевую кнопку.

Какой из интерфейсов является функциональным?
Anonymous voting

public interface Adder {
    int add(int a, int b);
}

public interface SmartAdder extends Adder {
    int add(double a, double b);
}

public interface Nothing {
}

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе

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

⌨️ Есть ли какие-либо рекомендации о том, какие поля следует использовать при подсчете hashCode()? Общий совет: выбирать поля, которые с большой долью вероятности будут различаться. Для этого необходимо использовать уникальные, лучше всего примитивные поля, например, такие как id, uuid. При этом нужно следовать правилу, если поля задействованы при вычислении hashCode(), то они должны быть задействованы и при выполнении equals(). #java #hashCode #equals

photo content

не усложняй)
не усложняй)

Что произойдет, если попытаться вызвать метод start() для потока, который уже был запущен (например, при повторном вызове thread.start())?
Anonymous voting

⚡️ Google в России — ВСЁ! Блогеры переезжают в Telegram, а разработчики из Big Tech не остались в стороне и уже перенесли пла
⚡️ Google в России — ВСЁ! Блогеры переезжают в Telegram, а разработчики из Big Tech не остались в стороне и уже перенесли платные материалы в свои каналы: 📱 @java – разработка на Java 📱 @python – разработка на Python 📱 @frontend – всё о JavaScript, HTML и CSS 📱 @it_hub – полезные материалы для разработчиков 📱 @english – английский язык в IT-сфере 📱 @memes – юмор и мемы для программистов

⌨️ Лямбда-выражения и свой кастомный функциональный интерфейс Для того что бы определить лямбда-выражение, нам нужен функциональный интерфейс. Изобретём свой:

@FunctionalInterface
interface MathOperation {
    int operate(int a, int b);
}
Функциональный интерфейс MathOperation содержит один абстрактный метод operate, который принимает два значения типа int и возвращает int. Аннотация @FunctionalInterface указывает на то, что интерфейс предназначен для использования в функциональном программировании и должен содержать только один абстрактный метод. Но аннотация не обязательна. Использование лямбда-выражения:

public class LambdaExample {
    public static void main(String[] args) {
        // Реализация интерфейса с помощью лямбда-выражения
        MathOperation addition = (a, b) -> a + b;
        MathOperation subtraction = (a, b) -> a - b;
        MathOperation multiplication = (a, b) -> a * b;
        MathOperation division = (a, b) -> a / b;

        int x = 10;
        int y = 5;

        System.out.println("Addition: " + operate(x, y, addition)); // 15
        System.out.println("Subtraction: " + operate(x, y, subtraction)); // 5
        System.out.println("Multiplication: " + operate(x, y, multiplication)); // 50
        System.out.println("Division: " + operate(x, y, division)); // 2
    }

    // Метод, принимающий MathOperation и применяющий его к данным
    private static int operate(int a, int b, MathOperation operation) {
        return operation.operate(a, b);
    }
}
В нашем примере лямбда-выражения используются для создания экземпляров интерфейса MathOperation для выполнения различных математических операций (сложение, вычитание и т.д.). Метод operate принимает два целых числа и функциональный интерфейс MathOperation, затем выполняет переданную операцию. В метод в третьем параметре можно передать непосредственно лямбда-выражение, не используя промежуточную переменную. #java #lambda #FunctionalInterface

Знаете ли вы, что число π (пи) никогда не заканчивается и не повторяется? А числа Фибоначчи встречаются во многих природных явлениях? 🐌 Математика — это не просто набор формул. Это язык, который описывает мир вокруг нас. 📚 Есть желание разобраться? В помощь вам — полезный канал о высшей математике. Его автор — выпускник СПБГУ, а ныне — преподаватель предмета. Простым языком объясняет сложные вещи, даёт шпаргалки и проводит бесплатные практикумы 🔥 Приятный бонус — живые дискуссии в комментариях и ответы на любые вопросы. Посмотрите сами 👉 @lav_math

⌨️ Для чего нужен метод hashCode()? Метод hashCode() необходим для вычисления хэш кода переданного в качестве входного параметра объекта. В Java это целое число, в более широком смысле - битовая строка фиксированной длины, полученная из массива произвольной длины. Этот метод реализован таким образом, что для одного и того же входного объекта, хэш код всегда будет одинаковым. Следует понимать, что в Java множество возможных хэш кодов ограничено типом int, а множество объектов ничем не ограничено. Из-за этого, вполне возможна ситуация, что хэш коды разных объектов могут совпасть: ✔️ если хэш коды разные, то и объекты гарантированно разные; ✔️ если хэш коды равны, то объекты не обязательно равны(могут быть разные). #java #hashCode

Мечтаешь о карьере в бигтехе? Приходи на интенсив в Открытые школы Т1 для Java-разработчиков с опытом от года. Лучшие выпускн
Мечтаешь о карьере в бигтехе? Приходи на интенсив в Открытые школы Т1 для Java-разработчиков с опытом от года. Лучшие выпускники получат оффер от Т1 — крупнейшей ИТ-компании по версии RAEX 2023🔝 и уникальный карьерный фаст-трек до мидла в бигтехе. В портфеле Холдинга Т1 800+ масштабных проектов и 70+ продуктов и услуг. 🧠 Всего за полгода мы выпустили 500+ специалистов. Участники присоединились к командам финтех-разработки и разработки ИТ-продуктов. Выпускников также ждут в юнитах облачных сервисов, развития ИИ-решений, интеграции и консалтинга. Программа курса: spring framework; docker; синхронное и асинхронное взаимодействие, брокеры сообщений; паттерны, SOLID. ⌛️ Быстрое обучение: 1 месяц. 💻Гибкий формат: все этапы онлайн, занятия по вечерам. Готов прокачаться вместе с экспертами индустрии? Тогда подавай заявку до 22 августа! Старт интенсива — 28 августа. Реклама. ООО "Т1". ИНН 7720484492.