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

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

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

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
👩‍💻 FileOutputStream или FileWriter?

Запись файлов в Java осуществляется двумя способами — FileOutputStream и FileWriter. Какой именно метод выбрать, зависит от конкретной задачи.

FileOutputStream предназначен для записи потоков необработанных байтов. Это делает его идеальным решением для работы, например, с изображениями.

У FileWriter другое призвание — работа с потоками символов. Так что если вы пишете текстовые файлы, выбирайте этот метод.

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

Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить?

Ответ: Равные объекты должны возвращать одинаковые хэш коды. При переопределении equals() нужно обязательно переопределять и метод hashCode().

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
332
👩‍💻 Spring и Hibernate простыми словами: обзор для новичков

Spring и Hibernate — два популярных инструмента для Java, которые используются в разработке приложений.

В этой статье мы исследуем их основные функции и особенности, как они работают вместе и почему так высоко ценятся в IT-индустрии.

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

➡️ Java Developer | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
175💯3
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣69😁101021
👩‍💻 Локальный класс (Local inner class)

Локальный класс — это класс, объявленный внутри метода или блока кода. Он доступен только в пределах этого метода или блока.

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

В примере на картинке внутри метода main() объявлен локальный класс LocalClass. В нем определен метод printMessage(). Далее создается экземпляр LocalClass и вызывается его метод.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
158💯1
Что выведет код сверху?
Anonymous Quiz
9%
null
7%
0
45%
10
39%
Ошибка компиляции
23😁1
👩‍💻 Java-рантаймы с точки зрения Spring Boot

Выбор правильного Java-рантайма для вашего проекта на Spring Boot может показаться тривиальным. В конце концов, все популярные рантаймы основываются на коде OpenJDK и предлагают одинаковые программные интерфейсы.

Но не все рантаймы реализованы одинаково. В этой статье автор описывает различные показатели, которые могут повлиять на ваше решение выбрать определенный дистрибутив Java для Spring Boot приложения.

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

➡️ Java Developer | #статья #spring
Please open Telegram to view this post
VIEW IN TELEGRAM
132
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