Java Developer
16K subscribers
1.62K photos
123 videos
2 files
1.78K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

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

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

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
Вопрос с собеседования

Какие два класса не наследуются от Object?

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

tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
😁42🔥6👍5🤣2
👩‍💻 Можно ли спасти LinkedList? Пишем быстрый List на связном списке

LinkedList в Java часто критикуется за низкую производительность при доступе по индексу, что делает его менее предпочтительным по сравнению с ArrayList.

Однако, можно ли улучшить связный список, сохранив его преимущества и повысив эффективность?

В этой статье автор предлагает оптимизированную версию LinkedList с кеширующим массивом, который ускоряет доступ по индексу. Такой подход снижает сложность операций с O(N) до O(√N), значительно повышая производительность.

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
32😁26💯1
Вопрос с собеседования

Что такое Executor?

Ответ: Executor — это интерфейс, который позволяет запускать задачи асинхронно. Используется вместе с интерфейсами Callable и Future для асинхронного выполнения задач. Он позволяет отделить логику создания и запуска потоков от самих задач, что улучшает производительность благодаря использованию пула заранее созданных потоков.

📱 Java Developer | #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍121
👩‍💻 Удивительная история развития сортировки в JDK

В статье рассказывается, как в разных версиях JDK менялись алгоритмы сортировки и почему эти изменения оказались значимыми для производительности.

Оказывается, что разработчики Java не просто выбирали известные методы, а экспериментировали с Merge sort, Timsort и Dual-Pivot Quicksort, подбирая наиболее эффективные решения.

Что вы узнаете из статьи:
Какие алгоритмы использовались в разных версиях JDK?

Почему для сортировки примитивных типов выбрали Dual-Pivot Quicksort?

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

В чем разница между сортировкой объектов и примитивов?


Автор подробно объясняет, как менялись алгоритмы, какие решения оказались удачными, а какие — нет, и как это влияет на современные Java-приложения.

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
17😁14👍3🔥2
3
Что выведет код сверху?
Anonymous Quiz
25%
true false
17%
false true
32%
true true
26%
false false
👍84🔥4
👩‍💻 Постквантовая криптография: как защитить данные в эпоху квантовых компьютеров

С развитием квантовых технологий привычные алгоритмы шифрования могут потерять свою надежность, став уязвимыми для новых атак.

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

В статье рассматривается, как интегрировать постквантовые криптографические алгоритмы в проекты на Java и Go, а также какие инструменты помогут сделать этот процесс проще.

Что вы узнаете из статьи:
▶️ Какие постквантовые алгоритмы рекомендованы к использованию?

▶️ Как их внедрять в проекты на Java и Go?

▶️ Какие библиотеки и инструменты облегчают переход?

▶️ С какими сложностями можно столкнуться при адаптации криптографии?


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

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🔥1
А джунам остаётся только закинуть этот промпт в ChatGPT 😆

📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁45👨‍💻5🤣4
Вопрос с собеседования

Какой контракт должны соблюдать методы equals() и hashCode()?

Ответ: Методы equals() и hashCode() связаны следующим контрактом:

▶️ Если два объекта равны (equals() возвращает true), их hashCode() должен быть одинаковым

▶️ Если hashCode() у двух объектов разный, equals() обязан вернуть false

▶️ Если hashCode() одинаковый, equals() может вернуть как true, так и false

Нарушение этого контракта может привести к неправильной работе HashMap, HashSet и других коллекций, основанных на хэшировании.


tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥41
👩‍💻 Стримы в Java: как перестать бояться и полюбить?

Многие разработчики привыкли использовать циклы for для обработки коллекций, но с появлением Stream API в Java появилась возможность писать более лаконичный и выразительный код.

Однако переход от императивного стиля к декларативному может вызывать трудности и непонимание.

Что вы узнаете из статьи:
▶️ Что такое Stream API и как он работает?
▶️ Как использовать основные методы стримов: filter, map, reduce?
▶️ В чем преимущества функционального подхода перед традиционными циклами?
▶️ Как избежать распространенных ошибок при работе со стримами?


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

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁36💯12🤣7
Под какой буквой правильный ответ?
Anonymous Quiz
68%
A
11%
B
3%
C
17%
D
4👍3
👩‍💻 Как незащищённая TreeMap может привести к 3200% загрузке процессора?

В статье автор делится опытом отладки приложения, где нагрузка на CPU достигала 3200%, полностью загружая все 32 ядра сервера.

Проблема заключалась в незащищённом доступе нескольких потоков к общей структуре данных TreeMap, что приводило к аномальному потреблению ресурсов.

Что вы узнаете из статьи:
▶️ Как незащищённый доступ к TreeMap может вызвать перегрузку процессора?

▶️ Какие ошибки в многопоточной среде могут привести к подобным проблемам?

▶️ Как диагностировать и решать проблемы с высокой загрузкой CPU в Java-приложениях?

▶️ Какие инструменты и методы использовать для отладки многопоточных приложений?


Автор подробно описывает процесс выявления и устранения проблемы, предоставляя ценные рекомендации по работе с многопоточностью в Java.

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥75
Microsoft Edge: Какую функцию Edge вы используете чаще всего?
Opera: 😆


📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁42🤣19👍6🔥5👨‍💻3
Вопрос с собеседования

Почему HashMap не потокобезопасен, и что может пойти не так при одновременной записи в него?

Ответ: HashMap не синхронизирован, и при многопоточной записи могут возникнуть циклические ссылки (infinite loop) или потеря данных.

Причины:

▶️ При put() возможна перезапись данных в одной и той же ячейке

▶️ Resize (rehash) в многопоточной среде может привести к зацикливанию списка бакетов

▶️ При итерации можно получить ConcurrentModificationException

Решения:

▶️ Использовать ConcurrentHashMap для потокобезопасности

▶️ Синхронизировать доступ через Collections.synchronizedMap()

tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍215🔥4
👩‍💻 Делаем свою простейшую систему сборки для Java

Многие новички в программировании привыкают к тому, что для запуска Java-приложения достаточно создать Gradle/Maven-проект, нажать кнопку в IDE — и все работает.

Но стоит выйти за рамки стандартных сценариев, как процесс сборки превращается в “черный ящик”, а разобраться, что происходит под капотом, становится непросто.

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

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥6👍3
Работает не только с SQL 😆

📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁43🤣12💯2