TGViewer
Channel Public Channel
Java Learning

Java Learning

@java_per_month

№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.me/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Subscribers
16.6K
Photos
1.6K
Videos
1
Links
1K
Recent Posts 20 shown
Post #3800 2.59K
❓ Вопрос на собеседовании

Что такое ForkJoinPool в Java, как он работает, и как его использовать для параллельной обработки задач?

Ответ ⬇️
ForkJoinPool — это специализированный пул потоков, который рекурсивно делит задачи на подзадачи (fork) и объединяет их результаты (join). Он оптимизирован для задач, которые можно разделить на независимые части, например, вычисление суммы элементов массива. Основными классами являются RecursiveTask для задач с результатом и RecursiveAction для задач без результата.

Пример использования ⚙️
import java.util.concurrent.RecursiveTask;
import java.util.concurrent.ForkJoinPool;

class SumTask extends RecursiveTask<Integer> {
private final int[] array;
private final int start, end;

public SumTask(int[] array, int start, int end) {
this.array = array;
this.start = start;
this.end = end;
}

@Override
protected Integer compute() {
if (end - start <= 5) {
int sum = 0;
for (int i = start; i < end; i++) sum += array[i];
return sum;
} else {
int mid = (start + end) / 2;
SumTask left = new SumTask(array, start, mid);
SumTask right = new SumTask(array, mid, end);
left.fork();
return right.compute() + left.join();
}
}
}

public class Main {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
ForkJoinPool pool = new ForkJoinPool();
int result = pool.invoke(new SumTask(array, 0, array.length));
System.out.println("Сумма: " + result); // Сумма: 55
}
}


Java Learning 👩‍💻
  • 👍 4
Post #3799 3.8K
⚙️ List.subList()

В Java метод subList() позволяет создать представление части списка. Это удобно для работы с подмножествами коллекций без необходимости копирования элементов.

Java Learning 👩‍💻
  • 👍 7
Post #3798 3.91K
🔴 Завтра тестовое собеседование с Java-разработчиком

2 сентября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
📂 Сергей Чамкин, старший разработчик из Uzum, ex-WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Cергей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Сергею

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot

Реклама.
О рекламодателе.
Post #3797 4.86K
➡️ Quarkus — быстрый и лёгкий фреймворк для Java-приложений

Quarkus — оптимизированный фреймворк для создания Java-приложений с низким временем запуска и минимальным потреблением памяти. Подходит для облачных и серверлесс-приложений.

• Быстрый старт с нативной компиляцией на GraalVM.
• Оптимизация для облака и контейнеров.
• Совместимость с Java API и фреймворками Spring, Hibernate.
• Горячая перезагрузка для ускорения разработки.

🔗 Ссылочка на доку

Java Learning 👩‍💻
  • 👍 6
  • 😁 2
Post #3795 3.87K
⚙️ Collectors.joining()

В Java метод Collectors.joining() из пакета java.util.stream позволяет объединить элементы потока в одну строку с опциональным разделителем, префиксом и суффиксом. Это удобно для создания строковых представлений коллекций.

Java Learning 👩‍💻
  • 👍 5
Post #3794 4.93K
🔴 Завтра тестовое собеседование с Java-разработчиком

5 августа(уже завтра!) в 19:00 по мск
приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
📂 Сергей Чамкин, старший разработчик из Uzum, ex-WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Cергей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Сергею

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot

Реклама.
О рекламодателе.
Post #3790 4.28K
⚙️ Files.mismatch()

Метод Files.mismatch(), добавленный в Java 12, позволяет сравнить два файла и найти позицию первого несовпадающего байта. Если файлы идентичны, метод возвращает -1. Это полезно для проверки целостности данных или сравнения файлов.

Java Learning 👩‍💻
  • 👍 11
Post #3789 4.47K
🔴 Завтра тестовое собеседование с Java-разработчиком

15 июля(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
📂 Сергей Чамкин, старший разработчик из Uzum, ex-WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Cергей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Сергею

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot

Реклама.
О рекламодателе.
Post #3788 3.49K
❓ Вопрос на собеседовании

Что такое ConcurrentHashMap в Java, как он работает и чем отличается от HashMap в многопоточной среде?

Ответ ⬇️
ConcurrentHashMap — это потокобезопасная версия HashMap, предназначенная для использования в многопоточной среде. В отличие от HashMap, который не является потокобезопасным и может приводить к состояниям гонки, ConcurrentHashMap позволяет нескольким потокам одновременно читать и изменять карту без блокировок всей коллекции. Он достигает этого за счёт сегментации и блокировок на уровне сегментов, а не всей структуры.

Пример использования ⚙️
import java.util.concurrent.ConcurrentHashMap;

public class Main {
public static void main(String[] args) {
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();

map.put("Alice", 1);
map.put("Bob", 2);

map.computeIfPresent("Alice", (key, val) -> val + 1);

System.out.println(map); // {Alice=2, Bob=2}
}
}


Java Learning 👩‍💻
  • 👍 8
Post #3786 3.29K
#вопросы_с_собеседований
Что будет, если в Map положить два значения с одинаковым ключом?

Если в Map положить два значения с одинаковым ключом, то произойдет следующее:

— При добавлении второго значения с уже существующим ключом, первое значение, связанное с этим ключом, будет перезаписано.

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

— Конкретная реализация Map (например, HashMap) может бросить исключение, если попытаться добавить дублирующийся ключ.

Таким образом, поведение в такой ситуации зависит от конкретной реализации интерфейса Map, но в целом дублирующиеся ключи в Map запрещены.


Java Learning 👩‍💻
  • 👍 5
  • 😢 5
  • 🎄 1
Post #3785 3.41K
⚙️ String.replaceAll()

В Java метод String.replaceAll() заменяет все вхождения текста, соответствующего регулярному выражению, на заданную строку. Это мощный инструмент для обработки строк.

Java Learning 👩‍💻
  • 👍 7
  • 🔥 2
Post #3784 4.06K
⚙️ Collectors.toMap()

В Java метод Collectors.toMap() собирает элементы потока в карту (Map), где вы можете указать функции для ключей и значений. Это удобно для преобразования коллекций в структуру ключ-значение.

Java Learning 👩‍💻
  • 👍 5
  • ❤‍🔥 1
Post #3781 4.92K
⚙️ Stream.collect() с Collector.of()

В Java метод Collector.of() позволяет создавать пользовательские коллекции с кастомной логикой для сборки данных. Это даёт полный контроль над процессом объединения элементов.

Java Learning 👩‍💻
  • 👍 3
  • ❤‍🔥 1
Post #3779 3.52K
RefactorFirst

RefactorFirst — это инструмент для Java-кода, помогающий определить и расставить по приоритетам классы, которые следует рефакторить в первую очередь. Он работает, сканируя код на наличие «божественных классов» (God Classes) и классов с высокой степенью связности.

«Божественных классов» — это классы, которые делают слишком много и, следовательно, являются плохо спроектированными. Они могут быть трудными для понимания, тестирования и сопровождения.

Java Learning 👩‍💻
  • 👍 2
  • ❤‍🔥 1
Post #3778 3.63K
⚙️ Collections.reverse()

В Java метод Collections.reverse() изменяет порядок элементов в списке на обратный. Это удобно для работы с коллекциями, где требуется обратный порядок.

Java Learning 👩‍💻
  • 👍 2
Post #3777 4.13K
❓ Вопрос на собеседовании

Что такое функциональный интерфейс в Java, и как он используется в лямбда-выражениях?

Ответ ⬇️
Функциональный интерфейс в Java — это интерфейс с единственным абстрактным методом, который может использоваться как целевая конструкция для лямбда-выражений и ссылок на методы. Они помогают писать более чистый и выразительный код, позволяя передавать поведение (функции) как параметры. Аннотация @FunctionalInterface проверяет, что интерфейс соответствует требованиям функционального интерфейса и помогает избежать случайного добавления методов.

Пример использования ⚙️
@FunctionalInterface
interface MyFunctionalInterface {
void printMessage(String message);
}

public class Main {
public static void main(String[] args) {
MyFunctionalInterface printer = message -> System.out.println("Сообщение: " + message);
printer.printMessage("Привет, мир!"); // Сообщение: Привет, мир!
}
}


Java Learning 👩‍💻
  • 👍 6
  • ❤‍🔥 2
Post #3776 4.15K
➡️ Использование Chronicle Map для распределенных ключ-значение хранилищ

Chronicle Map — это мощный инструмент для создания распределенных хранилищ "ключ-значение" с высокой производительностью. Поддерживает работу с большими объемами данных в реальном времени и отлично подходит для высоконагруженных систем.

• Поддерживает распределенные хранилища.
• Минимальная задержка, высокая производительность.
• Идеальна для финансовых и IoT-приложений.

🔗 Ссылочка на доку

Java Learning 👩‍💻
  • ❤‍🔥 1
  • 👍 1
Post #3775 4.22K
⚙️ Files.move()

В Java метод Files.move() из пакета java.nio.file используется для переименования или перемещения файла/директории. Он является мощным инструментом для работы с файловой системой.

Java Learning 👩‍💻
  • 👍 8
Post #3771 5.12K
Метод isDaemon()

Метод isDaemon() используется для определения, является ли поток демоном или нет.

Демон (daemon) — это поток, который работает в фоновом режиме и не препятствует завершению программы. Основная программа может завершиться, даже если демон все еще выполняется.

Java Learning 👩‍💻
  • 👍 3
  • ❤‍🔥 1
Post #3769 3.66K
#вопросы_с_собеседований
🤔 Что будет, если в static блоке кода возникнет исключение?

Если в static блоке кода возникнет исключение, то это приведет к ошибке инициализации класса.
Static блок выполняется при загрузке класса, и любые исключения в нем приведут к сбою и невозможности загрузить класс.

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


Java Learning 👩‍💻
  • 👍 4
Older posts →

About this channel

How can I read @java_per_month without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Java Learning: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Java Learning have?
Java Learning (@java_per_month) has 16.6K subscribers on Telegram, refreshed roughly every 30 minutes.
Does Java Learning know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →