ch
Feedback
Java Geek

Java Geek

前往频道在 Telegram

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

显示更多
2 430
订阅者
-324 小时
-77
-1730
吸引订阅者
六月 '26
六月 '26
+4
在0个频道中
五月 '26
+23
在0个频道中
Get PRO
四月 '26
+12
在0个频道中
Get PRO
三月 '26
+18
在0个频道中
Get PRO
二月 '26
+21
在0个频道中
Get PRO
一月 '26
+16
在0个频道中
Get PRO
十二月 '25
+11
在0个频道中
Get PRO
十一月 '25
+43
在32个频道中
Get PRO
十月 '25
+31
在0个频道中
Get PRO
九月 '25
+55
在37个频道中
Get PRO
八月 '25
+40
在0个频道中
Get PRO
七月 '25
+60
在28个频道中
Get PRO
六月 '25
+61
在20个频道中
Get PRO
五月 '25
+71
在45个频道中
Get PRO
四月 '25
+102
在37个频道中
Get PRO
三月 '25
+96
在38个频道中
Get PRO
二月 '25
+81
在32个频道中
Get PRO
一月 '25
+98
在34个频道中
Get PRO
十二月 '24
+86
在35个频道中
Get PRO
十一月 '24
+75
在33个频道中
Get PRO
十月 '24
+89
在30个频道中
Get PRO
九月 '24
+121
在29个频道中
Get PRO
八月 '24
+49
在18个频道中
Get PRO
七月 '24
+45
在0个频道中
Get PRO
六月 '24
+68
在24个频道中
Get PRO
五月 '24
+65
在19个频道中
Get PRO
四月 '24
+48
在0个频道中
Get PRO
三月 '24
+78
在21个频道中
Get PRO
二月 '24
+85
在18个频道中
Get PRO
一月 '24
+154
在24个频道中
Get PRO
十二月 '23
+111
在24个频道中
Get PRO
十一月 '23
+92
在17个频道中
Get PRO
十月 '23
+111
在18个频道中
Get PRO
九月 '23
+108
在0个频道中
Get PRO
八月 '23
+73
在0个频道中
Get PRO
七月 '23
+99
在0个频道中
Get PRO
六月 '23
+95
在0个频道中
Get PRO
五月 '23
+115
在0个频道中
Get PRO
四月 '23
+114
在0个频道中
Get PRO
三月 '23
+29
在0个频道中
Get PRO
二月 '23
+67
在0个频道中
Get PRO
一月 '23
+124
在0个频道中
Get PRO
十二月 '22
+161
在0个频道中
Get PRO
十一月 '22
+107
在0个频道中
Get PRO
十月 '22
+277
在0个频道中
Get PRO
九月 '22
+1 189
在0个频道中
日期
订阅者增长
提及
频道
24 六月+1
23 六月0
22 六月0
21 六月0
20 六月+1
19 六月0
18 六月0
17 六月0
16 六月0
15 六月0
14 六月0
13 六月0
12 六月0
11 六月0
10 六月0
09 六月+1
08 六月+1
07 六月0
06 六月0
05 六月0
04 六月0
03 六月0
02 六月0
01 六月0
频道帖子
Как определить, содержит ли массив определенное значение в Java с помощью потоков? Чтобы проверить, содержит ли массив значен
Как определить, содержит ли массив определенное значение в Java с помощью потоков? Чтобы проверить, содержит ли массив значений int, double или long значение, используйте IntStream, DoubleStream или LongStream соответственно. 👉 @java_geek

2
👩‍💻 Алгоритмическая сложность коллекций в Java Приглашаем на открытый урок. 🗓 01 июля в 20:00 МСК 🆓 Бесплатно. Урок в рам
👩‍💻 Алгоритмическая сложность коллекций в Java Приглашаем на открытый урок. 🗓 01 июля в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Java-разработчик». Программа урока: ✔️Основы алгоритмической сложности и принцип работы о-нотации; ✔️Влияние сложности операций на выбор подходящих коллекций; ✔️Сравнение популярных коллекций Java по эффективности выполнения различных операций; ✔️Практическая демонстрация, в которой будет показано, как эффективно использовать коллекции; ✔️Рекомендации по выбору коллекций для решения задач разного уровня сложности. 🔗 Ссылка на регистрацию: https://vk.cc/cYZxl9 Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
137
3
Дайте краткую характеристику Enum в Java Enum — перечисление, набор строковых констант, объединенных общим типом. Объявляется
Дайте краткую характеристику Enum в Java Enum — перечисление, набор строковых констант, объединенных общим типом. Объявляется через ключевое слово — enum. Вот пример с enum — допустимые роли в некоторой школе (см картинку). Слова, написанные большими буквами, и есть те самые константы перечисления, которые объявляются упрощенно, без использования оператора new. Использование перечислений заметно упрощает жизнь, так как они помогают избежать ошибок и путаницы в наименованиях (так как может быть только определенный перечень значений). 👉 @java_geek
163
4
Что такое «fail-fast поведение»? fail-fast поведение означает, что при возникновении ошибки или состояния, которое может привести к ошибке, система немедленно прекращает дальнейшую работу и уведомляет об этом. Использование fail-fast подхода позволяет избежать недетерминированного поведения программы в течение времени. В Java Collections API некоторые итераторы ведут себя как fail-fast и выбрасывают ConcurrentModificationException, если после его создания была произведена модификация коллекции, т.е. добавлен или удален элемент напрямую из коллекции, а не используя методы итератора. Реализация такого поведения осуществляется за счет подсчета количества модификаций коллекции (modification count): • при изменении коллекции счетчик модификаций так же изменяется; • при создании итератора ему передается текущее значение счетчика; • при каждом обращении к итератору сохраненное значение счетчика сравнивается с текущим, и, если они не совпадают, возникает исключение. 👉 @java_geek
223
5
👩‍💻 Как работает @Transactional в Spring: границы транзакций и типовые ошибки Приглашаем на открытый урок. 🗓 29 июня в 20:
👩‍💻 Как работает @Transactional в Spring: границы транзакций и типовые ошибки Приглашаем на открытый урок. 🗓 29 июня в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework». На занятии мы разберем: ✔️Что реально делает @Transactional в Spring ✔️Почему важны proxy и вызов метода через Spring Bean ✔️Как работают propagation-режимы на примере REQUIRED и REQUIRES_NEW ✔️Когда происходит rollback и почему checked exceptions не всегда откатывают транзакцию ✔️Типовые ошибки при работе с транзакциями в сервисном слое Урок будет полезен Java/Kotlin-разработчикам, которые уже пишут приложения на Spring или начинают использовать Spring в реальных backend-проектах и хотят лучше понимать поведение транзакций. 🔗 Ссылка на регистрацию: https://vk.cc/cYRHlf Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
236
6
Что такое маркерный интерфейс? Каковы известные примеры таких интерфейсов в Java? Маркерный интерфейс — это интерфейс без каких-либо методов. Обычно он реализуется классом или расширяется другим интерфейсом для обозначения определенного свойства. Наиболее широко известными маркерами в стандартной библиотеке Java являются следующие: Serializable используется для явного указания того, что этот класс может быть сериализован; Cloneable позволяет клонировать объекты с помощью метода clone (без интерфейса Cloneable этот метод выдает исключение CloneNotSupportedException); Remote используется в RMI для указания интерфейса, методы которого можно вызывать удаленно. 👉 @java_geek
202
7
Сколько различных типов конструкторов существует в Java? В Java есть 2 типа конструкторов: 1) Конструктор по умолчанию — не принимает никаких параметров. 2) Параметризованный конструктор — принимает как минимум один параметр. 👉 @java_geek
233
8
Многопоточность в Java В Java многопоточность реализована через класс Thread и интерфейс Runnable. Вот основные моменты, которые могут быть полезны при работе с многопоточностью: 🔵1. Создание и запуск потока - Поток может быть создан двумя способами: - Наследование от класса Thread: class MyThread extends Thread { public void run() { // Код, выполняемый в потоке } } MyThread t = new MyThread(); t.start(); - Реализация интерфейса Runnable: class MyRunnable implements Runnable { public void run() { // Код, выполняемый в потоке } } Thread t = new Thread(new MyRunnable()); t.start(); 🔵2. Основные методы класса Thread - start() — запуск потока. - sleep(long millis) — приостановка потока на определенное время. - join() — ожидание завершения потока. - interrupt() — прерывание потока. - isAlive() — проверка, работает ли поток. 🔵3. Синхронизация - Чтобы избежать проблем с конкурентным доступом к данным, используется синхронизация: synchronized (this) { // Критическая секция } Это гарантирует, что только один поток может выполнить код внутри синхронизированного блока. 🔵4. Пул потоков - Для управления большим количеством потоков используется пул потоков, который управляется через ExecutorService. Пример: ExecutorService executor = Executors.newFixedThreadPool(10); executor.submit(() -> { // Задача для потока }); executor.shutdown(); 🔵5. Состояния потока Потоки могут находиться в разных состояниях: - NEW: Поток создан, но не запущен. - RUNNABLE: Поток готов к выполнению. - WAITING: Поток ожидает другого потока. - TIMED_WAITING: Поток ожидает в течение определенного времени. - TERMINATED: Поток завершен. 🔵6. Проблемы многопоточности - Состояние гонки (Race condition) — ситуация, когда несколько потоков одновременно пытаются изменить данные, что может привести к некорректным результатам. - Блокировки — проблемы с мертвыми блокировками (deadlocks), когда потоки навсегда блокируются, ожидая друг друга. 🔵7. Современные подходы и классы - ForkJoinPool — используется для параллельного выполнения задач с разделением на подзадачи. - CountDownLatch, CyclicBarrier, Semaphore — различные утилиты для синхронизации между потоками. 🔵8. Параллельное выполнение коллекций - Коллекции в Java также могут работать с потоками через parallelStream(): List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); list.parallelStream().forEach(System.out::println); Многопоточность — мощный инструмент для улучшения производительности приложений, но требует внимательности при реализации, чтобы избежать ошибок, таких как мертвые блокировки или некорректный доступ к данным. 👉 @java_geek
267
9
Совет 💡 Обычно при сортировке в Spring Data мы указываем свойство, по которому хотим отсортировать, как строку. Однако сущес
Совет 💡 Обычно при сортировке в Spring Data мы указываем свойство, по которому хотим отсортировать, как строку. Однако существует класс TypedSort, который дает нам возможность передавать функцию в качестве параметра для сортировки. Это повышает безопасность типов в нашем коде. 👉 @java_geek
307
10
Можно ли указывать конструктор внутри Enum? Да, конечно. Именно через конструктор и задаются значения внутренних переменных e
Можно ли указывать конструктор внутри Enum? Да, конечно. Именно через конструктор и задаются значения внутренних переменных enum. В качестве примера добавим два поля - ageFrom и ageTo - чтобы обозначить возрастные рамки для каждой роли. 👉 @java_geek
312
11
🔴 Завтра тестовое собеседование с Java-разработчиком 10 июня(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседо
🔴 Завтра тестовое собеседование с Java-разработчиком 10 июня(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика. Как это будет: 📂 Виктор Анохин, старший разработчик из WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Виктор будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Виктору Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot Реклама. О рекламодателе.
304
12
Какая проблема возникнет с этим кодом? Ответ: Данный код не с компилируется. Этот вопрос на знание иерархии исключений, в дан
Какая проблема возникнет с этим кодом? Ответ: Данный код не с компилируется. Этот вопрос на знание иерархии исключений, в данном случае FileNotFoundException унаследован от IOException, первый catch будет перехватывать все исключения и в следующий блок catch управление не будет передано. 👉 @java_geek
310
13
Что такое стек-трейс? Стек-трейс (stack trace) представляет собой список вызовов методов в обратном хронологическом порядке,
Что такое стек-трейс? Стек-трейс (stack trace) представляет собой список вызовов методов в обратном хронологическом порядке, начиная с метода, в котором произошло исключение. Стек-трейс позволяет отследить, какие методы были вызваны перед возникновением исключения, и предоставляет информацию о местоположении, где произошло исключение. 👉 @java_geek
449
14
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash Советы https://max.ru/sysadminof Книги для админов, полезные материалы https://max.ru/i_odmin_book Библиотека Системного Администратора https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др. https://max.ru/tipsysdmin Типичный Сисадмин Excel лайфхак 📌 https://t.me/Excel_lifehack Excel лайфхак 1C разработка 📌 https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С Программирование C++📌 https://max.ru/cpp_lib Библиотека C/C++ разработчика Программирование Go📌 https://max.ru/golang_lib Библиотека Go (Golang) разработчика Программирование React📌 https://max.ru/react_lib React Программирование Python 📌 https://max.ru/python_of Python академия. https://max.ru/BookPython Библиотека Python разработчика Java разработка 📌 https://max.ru/bookjava Библиотека Java разработчика GitHub Сообщество 📌 https://max.ru/githublib Интересное из GitHub Базы данных (Data Base) 📌 https://max.ru/database_info Все про базы данных Фронтенд разработка 📌 https://max.ru/frontend_1 Подборки для frontend разработчиков Библиотеки 📌 https://max.ru/programmist_of Книги по программированию https://max.ru/proglb Библиотека программиста https://max.ru/bfbook Книги для программистов Программирование 📌 https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻 Шутки программистов 📌 https://max.ru/itumor Шутки программистов Защита, взлом, безопасность 📌 https://max.ru/thehaking Канал о кибербезопасности https://max.ru/xakkep_1 Хакер Free Книги, статьи для дизайнеров 📌 https://max.ru/odesigners Статьи, книги для дизайнеров Математика 📌 https://max.ru/Pomatematike Канал по математике https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике Вакансии 📌 https://max.ru/progjob Вакансии в IT Мир технологий 📌 https://max.ru/mir_teh Канал для любознательных Бонус 📌 https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга https://max.ru/mockva_life Свежие новости Москвы https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
337
15
Можно ли перегружать метод main() в Java? Да, метод main() может быть перегружен, но JVM или виртуальная машина Java вызывает только исходный метод main(). 👉 @java_geek
354
16
🔴 Завтра тестовое собеседование с Java-разработчиком 27 мая(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседов
🔴 Завтра тестовое собеседование с Java-разработчиком 27 мая(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика. Как это будет: 📂 Сергей Чамкин, старший разработчик из Uzum, ex-WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Cергей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Сергею Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot Реклама. О рекламодателе.
416
17
Как перебрать элементы LinkedList в обратном порядке, не используя медленный get(index)? Для этого в LinkedList есть обратный
Как перебрать элементы LinkedList в обратном порядке, не используя медленный get(index)? Для этого в LinkedList есть обратный итератор, который можно получить, вызвав метод descendingIterator(). 👉 @java_geek
330
18
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash Советы https://max.ru/sysadminof Книги для админов, полезные материалы https://max.ru/i_odmin_book Библиотека Системного Администратора https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др. https://max.ru/tipsysdmin Типичный Сисадмин Excel лайфхак 📌 https://t.me/Excel_lifehack Excel лайфхак 1C разработка 📌 https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С Программирование C++📌 https://max.ru/cpp_lib Библиотека C/C++ разработчика Программирование Go📌 https://max.ru/golang_lib Библиотека Go (Golang) разработчика Программирование React📌 https://max.ru/react_lib React Программирование Python 📌 https://max.ru/python_of Python академия. https://max.ru/BookPython Библиотека Python разработчика Java разработка 📌 https://max.ru/bookjava Библиотека Java разработчика GitHub Сообщество 📌 https://max.ru/githublib Интересное из GitHub Базы данных (Data Base) 📌 https://max.ru/database_info Все про базы данных Фронтенд разработка 📌 https://max.ru/frontend_1 Подборки для frontend разработчиков Библиотеки 📌 https://max.ru/programmist_of Книги по программированию https://max.ru/proglb Библиотека программиста https://max.ru/bfbook Книги для программистов Программирование 📌 https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻 Шутки программистов 📌 https://max.ru/itumor Шутки программистов Защита, взлом, безопасность 📌 https://max.ru/thehaking Канал о кибербезопасности https://max.ru/xakkep_1 Хакер Free Книги, статьи для дизайнеров 📌 https://max.ru/odesigners Статьи, книги для дизайнеров Математика 📌 https://max.ru/Pomatematike Канал по математике https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике Вакансии 📌 https://max.ru/progjob Вакансии в IT Мир технологий 📌 https://max.ru/mir_teh Канал для любознательных Бонус 📌 https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга https://max.ru/mockva_life Свежие новости Москвы https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП
0
19
Array vs ArrayList Выбор между Array (стандартным Java-массивом) и ArrayList зависит от специфики задачи на Java, которую тре
Array vs ArrayList Выбор между Array (стандартным Java-массивом) и ArrayList зависит от специфики задачи на Java, которую требуется решить. Помните о следующих особенностях этих типов: ☕️ Array имеет фиксированный размер и память для него выделяется в момент объявления, а размер ArrayList может динамически изменяться; ☕️ Массивы Java работают гораздо быстрее, а в ArrayList намного проще добавлять/удалять элементы; ☕️ При работе с Array велика вероятность получить ошибку ArrayIndexOutOfBoundsException; ☕️ У ArrayList только одно измерение, а вот массивы Java могут быть многомерными. 👉 @java_geek
438
20
Какова цель ключевого слова final, когда оно используется с переменной? Ключевое слово final в Java — это модификатор, который может применяться к переменным, методам и классам. Когда оно используется с переменной, это делает её неизменяемой, другими словами — константой. Например, переменная PI объявлена как final в классе ниже: public class CircleCalculator { private final double PI = 3.14159; public double calculateArea(double radius) { return PI * radius * radius; } } 👉 @java_geek
407