Java Developer – Telegram
Java Developer
15.8K subscribers
1.85K photos
135 videos
2 files
2.07K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

Сотрудничество: @bape_ads
Прайс: @bape_media

РКН: https://clck.ru/3GHfTK

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣636
⌨️ Mutable

Mutable объекты — это объекты, состояние которых можно изменить после создания.

Примеры Mutable объектов:

Массивы
Списки — ArrayList, LinkedList
Коллекции — HashMap и другие

Альтернативой являются Immutable объекты — это объекты, которые не могут быть изменены после создания. Например, String (строки), упакованные примитивные объекты, такие как Integer, Long и т.д.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
218
9
В LinkedList добавили 10.000 элементов и отсортировали с помощью Collections.sort. Какая сложность будет у операции list.contains(12)?
Anonymous Quiz
24%
O(log n)
13%
O(1)
13%
O(n^2)
50%
O(n)
32
👩‍💻 Records

Records (записи) — это новая концепция, представленная в Java 14, которая позволяет создавать простые, неизменяемые классы-контейнеры данных.

Как правило, мы можем использовать записи в любой ситуации, когда нужно объявить простые контейнеры данных с неизменяемыми свойствами и автоматически сгенерированными методами.

Если раньше класс Student мы оформляли так:
public final class Student {
private final String name;
private final int age;

public Man(String name, int age) {
this.name = name;
this.age = age;
}

public String getName() {
return name;
}

public int getAge() {
return age;
}
}


То сейчас нам не придётся писать кучу шаблонного кода (геттеры/сеттеры, методы toString(), equals() и hashCode()):
public record Student(String name, int age) {}


Хочешь добавить метод? Легко:
public record Student(String name, int age) {
public void sayHello() {
System.out.println("Hello");
}
}


Кстати, если заглянуть в байт-код после компиляции, можно увидеть несколько интересных моментов:
Компилятор заменил ключевое слово Record на class.

Компилятор объявил класс как final. Это указывает на то, что этот класс не может быть расширен. Это также означает, что он не может быть унаследован и неизменен по своей природе.

Преобразованный класс расширяет java.lang.Record. Это указывает на то, что все записи являются подклассом класса Record, определенного в пакете java.lang.

Компилятор добавляет параметризованный конструктор.

Компилятор автоматически сгенерировал методы toString(), hashCode() и equals().

Компилятор добавил методы для доступа к полям. Обратите внимание на соглашение об именах методов — они точно совпадают с именами полей, перед именами полей не должно быть get или set.


100 🕺 — и я пишу новый пост

➡️ Java Developer | #records
Please open Telegram to view this post
VIEW IN TELEGRAM
1656👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
41😁13🤣10
👩‍💻 Приложение для распознавания текста с изображений и аудиофайлов

В данной статье автор делится реализацией приложения, позволяющего пользователю преобразовать и сохранить текстовую информацию из изображения или аудио-файла.

Ссылка на статью — КЛИК

➡️ Java Developer | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
1081
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣9713😁54👍1
Вопрос с собеседования

Какое худшее время работы метода contains() для элемента, который есть в ArrayList?

Ответ: O(N). Время поиска элемента линейно пропорционально количеству элементов в списке.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
274
👩‍💻 Метод interrupt()

interrupt() — метод, который используется для прерывания потока исполнения.

Он является частью класса Thread и позволяет прервать поток, вызывая исключение InterruptedException, если поток находится в состоянии ожидания или блокировки. Если поток не находится в таком состоянии, метод interrupt() устанавливает флаг прерывания, который можно проверить с помощью метода isInterrupted().

Метод interrupt() может применяться в различных ситуациях, например, когда необходимо остановить поток по запросу пользователя или когда поток должен завершиться по достижении определенного условия.


➡️ Java Developer | #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
13
Что выведет код сверху?
Anonymous Quiz
4%
6
30%
15
42%
123
24%
Ошибка компиляции
40🤣13💯41
👩‍💻 Mockito: Как им пользоваться?

Несколько строк кода, и вы уже создаете моки для ваших сервисов и DAO!

Mockito предоставляет понятный API для мокирования, который делает тесты не только проще в написании, но и более читабельными.

Ссылка на статью — КЛИК

➡️ Java Developer | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
16
Вопрос с собеседования

Как вывести на экран 10 случайных чисел, используя forEach()?

Ответ: на картинке.

➡️ Java Developer | #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
309🤣4👍1
👩‍💻 Comparator

Comparator — это интерфейс, который используется для реализации произвольной сортировки элементов коллекции.

Чтобы задать свой порядок сортировки, нужно создать класс, реализующий Comparator, а затем переопределить метод compare.

В примере на картинке класс Main реализует интерфейс Comparator для целых чисел Integer и сортирует список чисел в обратном порядке.


➡️ Java Developer | #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
213💯3
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣56😁3💯3
👩‍💻 Рекурсия (Recursion)

Рекурсия в программировании — это процесс, при котором функция вызывает саму себя для решения задачи. Она позволяет элегантно решать сложные задачи, разбивая их на более простые подзадачи.

Основные элементы рекурсии в Java:
Базовый случай — это условие, при котором функция прекращает вызывать саму себя и возвращает результат;

Рекурсивный случай — это условие, при котором функция вызывает саму себя для решения более простой подзадачи. В каждом рекурсивном вызове задача упрощается, пока не достигнет базового случая;

Прогресс — каждый рекурсивный вызов должен быть ближе к базовому случаю, чтобы избежать бесконечной рекурсии.


🕺 — если было полезно

➡️ Java Developer | #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
817👍1🤣1
Вопрос с собеседования

Можно ли указывать конструктор внутри Enum?

Ответ: Да, именно через конструктор и задаются значения внутренних переменных enum.

➡️ Java Developer | #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
276💯2
👩‍💻 «Пинг-понг» на Java

Если вы искали обучающее руководство по созданию классической игры «Пинг-понг», поздравляю  —  вы его нашли!

Для реализации этой цели воспользуемся библиотекой Processing и Java.

Ссылка на статью КЛИК

➡️ Java Developer | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
177
Please open Telegram to view this post
VIEW IN TELEGRAM
💯35🤣17😁4