Быстрый совет Java 💡
Хотите быстро замерить время выполнения кода без тяжёлых библиотек?
Используйте
@javatg
#junior #java
Хотите быстро замерить время выполнения кода без тяжёлых библиотек?
Используйте
System.nanoTime()
- он точнее, чем currentTimeMillis()
, и подходит для измерения производительности:
long start = System.nanoTime();
// код, который нужно замерить
Thread.sleep(500);
long end = System.nanoTime();
System.out.println("Время выполнения: " + (end - start) / 1_000_000 + " ms");
@javatg
#junior #java
👍19🔥7❤4🤬2😁1
⚡️Готовиться к собеседованиям стало проще!
Женя Янченко, Java developer и руководитель разработки, cделала конспекты самой популярной книги по архитектуре систем — «Высоконагруженные приложения» Мартина Клеппмана (книга с кабанчиком). Подробные разборы репликации, шардирования, транзакций:
▶️ ЧИТАТЬ КОНСПЕКТ КАБАНЧИКА
В канале Женя разбирает и другие технические темы, которые могут пригодиться на собесе:
🟡 Load Balancer
🟡 CAP-теорема простыми словами
🟡 Индексы: как один запрос сломал расчет
А как же алгоритмы? Они тоже есть!
Женя объявила челлендж — решить 300 задач за год 😱
Каждый месяц делает отчеты и разборы популярных задач:
🟡 Разбор паттерна "Два указателя"
🟡 Разбор бинарного поиска
Истории из опыта, рекомендации и ответы на вопросы:
🟡 Как произвести крутое впечатление на техсобесе
🟡 «Ты не оправдываешь ожиданий» и что с этим делать
🟡 Как я боролась с неуверенностью в себе
🟡 «Просто нажми кнопку» или история одного релиза
📝 и ещё 100+ полезных технических и жизненных постов.
Подписывайтесь, чтобы не потерять полезный канал
➡️ @jane_yanchenko
Женя Янченко, Java developer и руководитель разработки, cделала конспекты самой популярной книги по архитектуре систем — «Высоконагруженные приложения» Мартина Клеппмана (книга с кабанчиком). Подробные разборы репликации, шардирования, транзакций:
В канале Женя разбирает и другие технические темы, которые могут пригодиться на собесе:
А как же алгоритмы? Они тоже есть!
Женя объявила челлендж — решить 300 задач за год 😱
Каждый месяц делает отчеты и разборы популярных задач:
Истории из опыта, рекомендации и ответы на вопросы:
📝 и ещё 100+ полезных технических и жизненных постов.
Подписывайтесь, чтобы не потерять полезный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3😁2❤1
🦙 Jlama — LLM-движок для Java-разработчиков. Проект поддерживает популярные модели вроде Llama 3, Mistral и Gemma 2, предлагая инструменты для их загрузки, квантования и запуска. Он работает с Java 20+ и поддерживает распределенные вычисления.
Разработчики могут использовать Jlama как через CLI-интерфейс для локального тестирования моделей, так и встраивать его в свои проекты через Maven-зависимости. Проект будет полезен для интеграции LLM в enterprise-решения без перехода на Python-стек.
🤖 GitHub
@javatg
Разработчики могут использовать Jlama как через CLI-интерфейс для локального тестирования моделей, так и встраивать его в свои проекты через Maven-зависимости. Проект будет полезен для интеграции LLM в enterprise-решения без перехода на Python-стек.
🤖 GitHub
@javatg
👍13🤯5❤4🔥1😁1
VK JT = Java + Go!
16 сентября VK приглашает Go‑ и Java‑разработчиков на VK JT Meetup в Санкт-Петербурге.
В программе:
— Максимально практические доклады от техлидов VK о трансформации ВКонтакте, переходе части сервисов на Go и об устройстве и развитии единой видеоплатформы VK
— Командные бэкенд-баттлы под менторством опытных разработчиков VK — кейсы, вдохновлённые реальной архитектурой VK
Задавайте вопросы экспертам, ищите лучшее командное решение кейса и оставайтесь на афтепати: нетворкинг, фуршет, свободное общение с коллегами.
Только офлайн, в офисе VK на Мойке.
🎟 Участие бесплатное, почитать подробнее и зарегистрироваться вы сможете на сайте
16 сентября VK приглашает Go‑ и Java‑разработчиков на VK JT Meetup в Санкт-Петербурге.
В программе:
— Максимально практические доклады от техлидов VK о трансформации ВКонтакте, переходе части сервисов на Go и об устройстве и развитии единой видеоплатформы VK
— Командные бэкенд-баттлы под менторством опытных разработчиков VK — кейсы, вдохновлённые реальной архитектурой VK
Задавайте вопросы экспертам, ищите лучшее командное решение кейса и оставайтесь на афтепати: нетворкинг, фуршет, свободное общение с коллегами.
Только офлайн, в офисе VK на Мойке.
🎟 Участие бесплатное, почитать подробнее и зарегистрироваться вы сможете на сайте
🔥2👍1😁1
☕ Java25 уже на подходе!
В свежем релизе — важные улучшения, о которых стоит знать каждому Java-разработчику:
🔹 JEP 502: Stable Values — новый способ работы со значениями, который делает код надёжнее и эффективнее.
🔹 JEP 514/515: Project Leyden — фокус на время запуска приложений и оптимизацию старта JVM.
📖 Подробный разбор:
https://softwaremill.com/jep-502-stable-values-new-feature-of-java-25-explained/
#Java #JEP #Leyden #Programming
В свежем релизе — важные улучшения, о которых стоит знать каждому Java-разработчику:
🔹 JEP 502: Stable Values — новый способ работы со значениями, который делает код надёжнее и эффективнее.
🔹 JEP 514/515: Project Leyden — фокус на время запуска приложений и оптимизацию старта JVM.
📖 Подробный разбор:
https://softwaremill.com/jep-502-stable-values-new-feature-of-java-25-explained/
#Java #JEP #Leyden #Programming
❤5👍5🎉2
💡 Полезный совет по Java
В Java часто нужно работать с датами и временем. Вместо устаревших Date и Calendar лучше использовать современное API java.time, появившееся в Java 8. Оно более удобное, безопасное и читаемое.
Например, если нужно добавить дни к текущей дате:
✅ Код становится проще и понятнее.
📌 Совет: всегда отдавайте предпочтение java.time вместо старых классов.
@javatg
В Java часто нужно работать с датами и временем. Вместо устаревших Date и Calendar лучше использовать современное API java.time, появившееся в Java 8. Оно более удобное, безопасное и читаемое.
Например, если нужно добавить дни к текущей дате:
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
LocalDate nextWeek = today.plusDays(7);
System.out.println("Сегодня: " + today);
System.out.println("Через неделю: " + nextWeek);
}
}
✅ Код становится проще и понятнее.
📌 Совет: всегда отдавайте предпочтение java.time вместо старых классов.
@javatg
🔥12👍3🥰1
🚀 Linux Pro совет
Хотите быстро найти, какой процесс держит порт и мешает вашему сервису запуститься?
Вместо хаотичных перезапусков используйте:
💡 Отличный способ понять, почему приложение не стартует:
сразу видно PID процесса, который занял порт.
Дальше можно решить — убить процесс, изменить конфиг или переназначить порт.
@javatg
Хотите быстро найти, какой процесс держит порт и мешает вашему сервису запуститься?
Вместо хаотичных перезапусков используйте:
# Проверка, кто слушает на порту 8080
lsof -i :8080
# Или
fuser 8080/tcp
💡 Отличный способ понять, почему приложение не стартует:
сразу видно PID процесса, который занял порт.
Дальше можно решить — убить процесс, изменить конфиг или переназначить порт.
@javatg
🔥8👍6❤3
🔥 Успех в IT = скорость + знания + окружение
Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: www.tg-me.com/ai_machinelearning_big_data
Python: www.tg-me.com/pythonl
Linux: www.tg-me.com/linuxacademiya
Собеседования DS: www.tg-me.com/machinelearning_interview
C++ www.tg-me.com/cpluspluc
Docker: www.tg-me.com/devops_teleg
Хакинг: www.tg-me.com/linuxkalii
Devops: www.tg-me.com/DevOPSitsec
Data Science: www.tg-me.com/data_analysis_ml
Javascript: www.tg-me.com/javascriptv
C#: www.tg-me.com/csharp_1001_notes
Java: www.tg-me.com/java_library
Базы данных: www.tg-me.com/sqlhub
Python собеседования: www.tg-me.com/python_job_interview
Мобильная разработка: www.tg-me.com/mobdevelop
Golang: www.tg-me.com/Golang_google
React: www.tg-me.com/react_tg
Rust: www.tg-me.com/rust_code
ИИ: www.tg-me.com/vistehno
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Frontend: www.tg-me.com/front
Big Data: www.tg-me.com/bigdatai
МАТЕМАТИКА: www.tg-me.com/data_math
Kubernets: www.tg-me.com/kubernetc
Разработка игр: https://www.tg-me.com/gamedev
Haskell: www.tg-me.com/haskell_tg
Физика: www.tg-me.com/fizmat
💼 Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://www.tg-me.com/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
🧠ИИ: www.tg-me.com/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: www.tg-me.com/ai_machinelearning_big_data
Python: www.tg-me.com/pythonl
Linux: www.tg-me.com/linuxacademiya
Собеседования DS: www.tg-me.com/machinelearning_interview
C++ www.tg-me.com/cpluspluc
Docker: www.tg-me.com/devops_teleg
Хакинг: www.tg-me.com/linuxkalii
Devops: www.tg-me.com/DevOPSitsec
Data Science: www.tg-me.com/data_analysis_ml
Javascript: www.tg-me.com/javascriptv
C#: www.tg-me.com/csharp_1001_notes
Java: www.tg-me.com/java_library
Базы данных: www.tg-me.com/sqlhub
Python собеседования: www.tg-me.com/python_job_interview
Мобильная разработка: www.tg-me.com/mobdevelop
Golang: www.tg-me.com/Golang_google
React: www.tg-me.com/react_tg
Rust: www.tg-me.com/rust_code
ИИ: www.tg-me.com/vistehno
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Frontend: www.tg-me.com/front
Big Data: www.tg-me.com/bigdatai
МАТЕМАТИКА: www.tg-me.com/data_math
Kubernets: www.tg-me.com/kubernetc
Разработка игр: https://www.tg-me.com/gamedev
Haskell: www.tg-me.com/haskell_tg
Физика: www.tg-me.com/fizmat
💼 Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://www.tg-me.com/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
🧠ИИ: www.tg-me.com/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
⚡ Java полезный совет
При работе с коллекциями часто нужно проверить элемент на наличие в списке.
Если использовать
Лучше сразу применять
Пример
📌 Итог:
- Для поиска в коллекции всегда используйте Set, если не нужен порядок.
- HashSet → быстрый доступ за O(1).
- TreeSet → доступ за O(log n), но с сортировкой элементов.
@javatg
При работе с коллекциями часто нужно проверить элемент на наличие в списке.
Если использовать
List.contains()
, то поиск будет O(n) — медленно на больших данных. Лучше сразу применять
Set
(например, `HashSet`) для поиска за O(1). Пример
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "banana", "orange", "grape");
// Медленно — O(n)
boolean slowCheck = list.contains("orange");
// Быстро — O(1)
Set<String> set = new HashSet<>(list);
boolean fastCheck = set.contains("orange");
System.out.println("List check: " + slowCheck);
System.out.println("Set check: " + fastCheck);
}
}
📌 Итог:
- Для поиска в коллекции всегда используйте Set, если не нужен порядок.
- HashSet → быстрый доступ за O(1).
- TreeSet → доступ за O(log n), но с сортировкой элементов.
@javatg
❤11👍9🥰2😁1🤬1
💡 SQL: поиск дубликатов с помощью GROUP BY и HAVING
Хотите найти строки, которые повторяются?
Используйте
🔎 Такой запрос покажет все email, которые встречаются более одного раза.
Можно добавлять дополнительные поля в GROUP BY, чтобы находить дубли по нескольким колонкам.
@javatg
Хотите найти строки, которые повторяются?
Используйте
GROUP BY
и фильтруйте через HAVING COUNT() > 1
.
SELECT
email,
COUNT(*) AS cnt
FROM users
GROUP BY email
HAVING COUNT(*) > 1;
🔎 Такой запрос покажет все email, которые встречаются более одного раза.
Можно добавлять дополнительные поля в GROUP BY, чтобы находить дубли по нескольким колонкам.
@javatg
👍17❤7🥰2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Станьте разработчиком нейро-сотрудников на Python и зарабатывайте от 150.000р в месяц 🔥🔥🔥
Мы научим вас создавать топовых нейро-сотрудников на базе GPT-4 Omni, и вы сможете:
1️⃣ Устроиться разработчиком в крупную компанию и зарабатывать от 150 тысяч ₽ в месяц
2️⃣ Разрабатывать такие проекты на заказ и зарабатывать от 500 тысяч ₽ за проект
3️⃣ Создать нейро-сотрудника в вашей компании и вырасти на +30-100% в зарплате
Что будет на интенсиве?
🧬 Теория: как создаются нейро-сотрудники с GPT-4o на Python
🧬 Практика: мы создадим нейро-консультанта, нейро-HR, нейро-маркетолога и др.
Ведущий интенсива - Senior AI разработчик нейросетей и основатель Университета искусственного интеллекта
🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайший четверг!
Мы научим вас создавать топовых нейро-сотрудников на базе GPT-4 Omni, и вы сможете:
1️⃣ Устроиться разработчиком в крупную компанию и зарабатывать от 150 тысяч ₽ в месяц
2️⃣ Разрабатывать такие проекты на заказ и зарабатывать от 500 тысяч ₽ за проект
3️⃣ Создать нейро-сотрудника в вашей компании и вырасти на +30-100% в зарплате
Что будет на интенсиве?
🧬 Теория: как создаются нейро-сотрудники с GPT-4o на Python
🧬 Практика: мы создадим нейро-консультанта, нейро-HR, нейро-маркетолога и др.
Ведущий интенсива - Senior AI разработчик нейросетей и основатель Университета искусственного интеллекта
🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайший четверг!
❤3
This media is not supported in your browser
VIEW IN TELEGRAM
📚🎮 SQL + Покемоны = Querymon!
Энтузиасты сделали игру, которая превращает изучение баз данных в настоящее приключение.
✨ С нуля — начнёте с простых таблиц и базовых запросов, сложность растёт постепенно.
🔎 Освоите SELECT, FROM, WHERE, фильтры LIKE, BETWEEN, IN и функции sum(), count(), avg().
🎯 Геймплей — сотни миссий, где, чтобы пройти дальше, нужно правильно писать SQL-запросы.
SQL ещё никогда не был таким весёлым: учиться теперь так же увлекательно, как ловить покемонов.
И самое приятное — игра полностью бесплатная.
👉 Попробовать можно здесь.
Энтузиасты сделали игру, которая превращает изучение баз данных в настоящее приключение.
✨ С нуля — начнёте с простых таблиц и базовых запросов, сложность растёт постепенно.
🔎 Освоите SELECT, FROM, WHERE, фильтры LIKE, BETWEEN, IN и функции sum(), count(), avg().
🎯 Геймплей — сотни миссий, где, чтобы пройти дальше, нужно правильно писать SQL-запросы.
SQL ещё никогда не был таким весёлым: учиться теперь так же увлекательно, как ловить покемонов.
И самое приятное — игра полностью бесплатная.
👉 Попробовать можно здесь.
❤6🔥6👍3👏1🤬1
🚀 Продвинутый совет по Spring Boot 🚀
Используй ApplicationPidFileWriter, чтобы при старте приложения записывать его PID в файл.
Это удобно для ops-скриптов, health-checks в контейнерах и мониторинга процессов. 🔥
👉 Документация: https://docs.spring.io/spring-boot/api/java/org/springframework/boot/context/ApplicationPidFileWriter.html
#SpringBoot #Java #DevOps
Используй ApplicationPidFileWriter, чтобы при старте приложения записывать его PID в файл.
Это удобно для ops-скриптов, health-checks в контейнерах и мониторинга процессов. 🔥
👉 Документация: https://docs.spring.io/spring-boot/api/java/org/springframework/boot/context/ApplicationPidFileWriter.html
#SpringBoot #Java #DevOps
❤9👍4🔥4
Знали ли вы, что у SQLite есть векторное расширение? 🧮
SQLite — самая используемая база данных в мире, работает практически на любом устройстве.
Теперь можно легко строить AI-приложения с помощью SQLite-vec и новой Embedding Gemma прямо на устройстве, без интернета.
Ниже — простой пример с Python + SQLite и Ollama. SQLite-vec совместим с WASM и запускается где угодно. Пример можно адаптировать почти под любой язык: Swift, Kotlin, Java, JavaScript…
🟢 Script: https://github.com/philschmid/gemini-samples/blob/main/scripts/embeddinggemma-sqlite-ollama.py
🟢 Sqlite-vec: https://alexgarcia.xyz/sqlite-vec/
🟢 EmbeddingGemma: https://developers.googleblog.com/en/introducing-embeddinggemma/
@javatg
SQLite — самая используемая база данных в мире, работает практически на любом устройстве.
Теперь можно легко строить AI-приложения с помощью SQLite-vec и новой Embedding Gemma прямо на устройстве, без интернета.
Ниже — простой пример с Python + SQLite и Ollama. SQLite-vec совместим с WASM и запускается где угодно. Пример можно адаптировать почти под любой язык: Swift, Kotlin, Java, JavaScript…
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3🔥3
Ты опытный Java-разработчик. Что дальше?
Дальше — искать новые пути развития и обмениваться знаниями. Это можно сделать на Joker — крупнейшей Java-конференции в России.
📍 17–18 октября, Санкт-Петербург
Тебя ждут хардкорные доклады о современных практиках Java-разработки, новых фичах Java, нюансах Spring, работе JVM под капотом, Kotlin и Scala, ORM и о базах данных. Еще там будут обсуждать архитектуру и backend, нагрузки и производительность, DevOps — выбирай, что ближе по духу.
Помимо докладов будут дискуссии со спикерами, зоны нетворкинга, а в конце первого дня — вечеринка!
Подробности и билеты — на сайте Joker.
С промокодом JAVA10 персональный билет стоит дешевле.
Реклама. ООО "ДЖУГ РУ ГРУП". ИНН 7801341446.
Дальше — искать новые пути развития и обмениваться знаниями. Это можно сделать на Joker — крупнейшей Java-конференции в России.
📍 17–18 октября, Санкт-Петербург
Тебя ждут хардкорные доклады о современных практиках Java-разработки, новых фичах Java, нюансах Spring, работе JVM под капотом, Kotlin и Scala, ORM и о базах данных. Еще там будут обсуждать архитектуру и backend, нагрузки и производительность, DevOps — выбирай, что ближе по духу.
Помимо докладов будут дискуссии со спикерами, зоны нетворкинга, а в конце первого дня — вечеринка!
Подробности и билеты — на сайте Joker.
С промокодом JAVA10 персональный билет стоит дешевле.
Реклама. ООО "ДЖУГ РУ ГРУП". ИНН 7801341446.
❤3🔥2😁2
Учим Git играючи.
Крутое десктопное приложение (Mac, Windows, Linux), которое учит работать с гитом без сухих лекций. Только практика и живой результат:
— Каждое задание выполняется в реальном Git и GitHub, а не в песочнице;
— В процессе вы собираете готовые репозитории у себя в аккаунте;
— Поддержка разных языков.
https://github.com/jlord/git-it-electron
Крутое десктопное приложение (Mac, Windows, Linux), которое учит работать с гитом без сухих лекций. Только практика и живой результат:
— Каждое задание выполняется в реальном Git и GitHub, а не в песочнице;
— В процессе вы собираете готовые репозитории у себя в аккаунте;
— Поддержка разных языков.
https://github.com/jlord/git-it-electron
👍15🥰2❤1
Что в нём нового:
- более 2600 исправлений и улучшений,
- 18 JEP-ов, включая долгожданные Module Import Declarations (теперь это постоянная конструкция),
- компактные исходные файлы и возможность писать main() как instance-метод — меньше шаблонного кода, проще создавать утилиты и скрипты,
- удалён порт x86 32-бит, улучшена работа JVM и расширены API для структурной конкуренции.
Java 25 делает разработку чище и удобнее, а компании получают стабильную платформу на годы вперёд.
@java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21❤5👍5
⚡ Полезный приём в Java: record + sealed interface для удобных и безопасных доменных моделей.
С помощью
Пример 👇
Теперь можно использовать switch с исчерпывающей проверкой:
✅ Преимущества:
- меньше if/instanceof;
- компилятор гарантирует, что рассмотрены все варианты;
- код становится выразительным и легко расширяемым.
🔥 Такой подход отлично подходит для бизнес-логики: платежи, статусы заказов, события системы.
@javatg
С помощью
sealed
можно чётко ограничить набор допустимых типов, а record
делает код компактным и иммутабельным. Пример 👇
sealed interface Payment permits CardPayment, CashPayment, CryptoPayment {}
record CardPayment(String cardNumber, double amount) implements Payment {}
record CashPayment(double amount) implements Payment {}
record CryptoPayment(String wallet, double amount) implements Payment {}
Теперь можно использовать switch с исчерпывающей проверкой:
static String process(Payment p) {
return switch (p) {
case CardPayment c -> "Оплата картой: " + c.amount();
case CashPayment c -> "Оплата наличными: " + c.amount();
case CryptoPayment c -> "Крипта из кошелька: " + c.wallet();
};
}
✅ Преимущества:
- меньше if/instanceof;
- компилятор гарантирует, что рассмотрены все варианты;
- код становится выразительным и легко расширяемым.
🔥 Такой подход отлично подходит для бизнес-логики: платежи, статусы заказов, события системы.
@javatg
👍10🔥5❤1