Библиотека Java разработчика
10.8K subscribers
1.14K photos
564 videos
58 files
1.44K links
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate.


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

РКН clck.ru/3KoGeP
Download Telegram
Интересные приёмы, взятые из исходников Android

В процессе чтения исходников Android SDK я замечал интересные механики и приёмы написания кода, какие-то из них до сих пор используются при создании новых библиотек, другие, напротив, заменены более логичными и понятными конструкциями. В этой статье я постараюсь перечислить всё, что смог заметить сам при изучении исходников Android'а. Сразу отмечу: эта статья не претендует на полноту материала и возможно вы нашли даже больше интересных моментов при чтении кода, ладно, погнали, короче!

https://habr.com/ru/companies/ruvds/articles/838330/

👉@BookJava
👍3
Есть ли в Java goto?

Это вопрос с подвохом. Оператор GOTO в общем виде – это оператор безусловного перехода в некоторую точку программы. Даже если вы не сталкивались с ним на практике, можете представить, сколько путаницы может принести возможность прыжка из середины одной функции, в середину другой. В современных высокоуровневых языках существует консенсус о том, что goto – это плохо.

На низком же уровне, от него никуда не деться, и в этом нет ничего плохого. Операция goto присутствует и в байткоде JVM. Компилятор заботится о её разумном использовании. В неё компилируются циклы, операторы ветвления, обработчики исключений.

Ещё goto присутствует в Java как зарезервированное слово – то, что скорее всего подсвечивается особым цветом в вашей IDE. Пока оно не используется, но разработчики языка оставляют за собой такое право.

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

👉@BookJava
👍4🥰1
Гринатом, ИТ-интегратор Росатома, в поиске Java-разработчика в команду по проектированию и разработке отраслевой системы электронного документооборота. Человека, знакомого с Java от и до и работающего с языком программирования не менее 3 лет.

Приветствуется знание SQL, GraalVM, библиотек и фреймворков, а также опыт написания юнит- и интеграционных тестов и понимание работы в CI/CD.

Если это про вас, откликайтесь на вакансию по ссылке: https://voronezh.hh.ru/vacancy/105691838
💩10🎉3
Подборка из 10 репозиториев GitHub для изучения Java

1. Awesome Java: https://github.com/akullpp/awesome-java
2. Modern Java - A Guide to Java 8: https://github.com/winterbe/java8-tutorial
3. Java Design Patterns: https://github.com/iluwatar/java-design-patterns
4. Spring Framework: https://github.com/spring-projects/spring-framework
5. Algorithms: https://github.com/TheAlgorithms/Java
6. Spring Boot Tutorial: https://github.com/RameshMF/spring-boot-tutorial
7. Baeldung Java and Spring Tutorials: https://github.com/eugenp/tutorials
8. Google Style Guides: https://github.com/google/styleguide
9. Netflix - Open Source Java Projects: https://github.com/Netflix
10. Ultimate Java Resources: https://github.com/dubesar/Ultimate-Java-Resources

👉@BookJava
👍10
Подборка Telegram каналов для программистов

Системное администрирование 📌

https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux

1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus

Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
https://t.me/game_devv Все о разработке игр

Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов

БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://t.me/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров

Английский 📌
https://t.me/UchuEnglish Английский с нуля

Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
https://t.me/Excel_lifehack

https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)

Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
3
Вопросы с реального собеседования Senior Java Developer

00:00 Приветствие
01:34 Введение
02:23 Разбор вопросов и ответов
03:10 Может ли разработчик управлять памятью в Java?
03:40 Как потоки связаны с памятью?
07:28 Spring Context и зачем он нужен?
08:10 Как работает аннотация @ Transactional?
09:45 Как работает транзакция?
10:30 Как работает TDD?
14:17 Выводы

https://www.youtube.com/watch?v=sMGYAucH9yY

👉@BookJava
👍21
Java varargs

Java varargs (variable arguments) — это механизм, предоставляемый Java, который позволяет методу принимать переменное количество аргументов одного типа. Он позволяет передавать любое количество аргументов заданного типа в метод, без явного указания массива аргументов.

Для объявления переменного количества аргументов в Java используется троеточие (...) после типа данных аргумента в определении метода.

👉@BookJava
👍5
Что находится внутри класса Math?

👉@BookJava
👍4🎉3
JDK 23: Чего ожидать?

JDK 23, выпуск которого запланирован на 17 сентября 2024 года, принесет множество значительных улучшений и усовершенствований в язык программирования Java и его поддерживающую экосистему. Этот выпуск станет второй подряд версией JDK без долгосрочной поддержки (non-LTS), после предыдущего LTS-релиза JDK 21.

Стоит отметить, что следующий запланированный LTS-релиз комплекта для разработки Java — JDK 25, который ожидается в сентябре 2025 года и, как предполагается, будет следовать той же модели долгосрочной поддержки, что и предыдущие LTS-версии.

💡 JDK 23 сейчас находится на стадии кандидата в релизы, что означает, что его функции завершены. Новые JEP больше не будут добавляться в этот выпуск.

💡 Кандидат в релизы (Release Candidate, RC) в контексте JDK — это как финальная версия программного обеспечения перед его официальным выпуском. Оно почти готово для публичного релиза, но проходит последний этап тестирования, чтобы выявить любые мелкие проблемы или ошибки, которые могли быть пропущены. Если серьезные проблемы не обнаружены, именно эта версия RC будет выпущена для всех. Это финальный шаг, чтобы убедиться, что программное обеспечение стабильно и готово для широкого использования.

https://www.unlogged.io/post/jdk-23-what-to-expect

👉@BookJava
👍5🔥2
JSpecify 1.0.0 и nullability в Java

Рады сообщить, что JSpecify 1.0.0 теперь доступен в Maven Central: четыре аннотации, связанные с nullability — @Nullable, @NonNull, @NullMarked и @NullUnmarked — стали официальными, и, что немаловажно, обратная совместимость с ними будет гарантирована.

Проекты и группы, входящие в консенсус, включают:

OpenJDK
EISOP
PMD
Android, Error Prone, Guava (Google)
Kotlin, IntelliJ (JetBrains)
Azure SDK (Microsoft)
Sonar
Spring

https://www.infoq.com/news/2024/08/jspecify-java-nullability/

👉@BookJava
👍3
Java Core

Коллекции в Java: List, Set и Map
Коллекции в Java: очередь и стек
Полезные советы по работе с BigDecimal в Java
SequencedCollection и SequencedSet в Java 21
SequencedMap в Java 21
Java 21: Pattern matching в switch
Интерфейсы Iterator и Iterable в Java
Интерфейсы Comparable и Comparator в Java

источник

👉@BookJava
👍5