Java библиотека
31.6K subscribers
2.31K photos
77 videos
8 files
2.04K links
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
Download Telegram
Разработка обслуживаемых программ на языке Java (2017) PDF

Вы когда-нибудь ощущали разочарование, работая с чужим кодом? Сегодня трудности сопровождения исходного кода представляют важную проблему разработки программного обеспечения, приводящую к дорогостоящим срывам сроков и ошибкам. Подключайтесь к ее решению. Данное практическое руководство познакомит вас с 10 простыми рекомендациями, помогающими писать программное обеспечение, которое легко поддерживать и адаптировать. Эти тезисы сформулированы на основании анализа сотен реальных систем.
Написанная консультантами компании Software Improvement Group (SIG), книга содержит ясные и краткие советы по применению рекомендаций на практике. Примеры для этого издания написаны на языке Java, но существует аналогичная книга с примерами на языке C#.
👍108🔥2
Сколько переходов происходит в момент вызова HashMap.get(key) по ключу, который есть в таблице?

• ключ равен null: 1 - выполняется единственный метод getForNullKey().
• любой ключ отличный от null: 4 - вычисление хэш-кода ключа; определение номера корзины; поиск значения; возврат значения.
👍216🎉3🔥1
Техника «10 тестов в день» – одна из самых эффективных в изучении Java.

Канал Java Guru выложил в открытый доступ тесты, которые дают на собеседованиях в топовые компании, вроде Яндекс и MailRu.

➤ Открываете задачку – выбираете вариант – видите правильный ответ и детальное объяснение к нему. Так вы усвоите на 50% больше знаний в сжатые сроки.

Подписывайтесь и качайте свои скиллы: @javatasks
7👍5🔥2
Примитивные типы данных в Java

Java как язык программирования является одновременно статически-типизированными и строго-типизированным.

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

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

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

Читать статью
👍178🔥3
Сколько создается новых объектов, когда вы добавляете новый элемент в HashMap?

Один
новый объект статического вложенного класса Entry<K,V>.
👍19
👩‍💻 В этом выпуске Николай Парлог расскажет обо всем, что вам нужно знать для миграции проекта с Java 17 до Java 21.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥2
Java: устранение проблем (2023) True PDF

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

Издание подойдет для Java-разработчиков средней квалификации.

«Наконец-то вышла книга, которая демонстрирует, как устранять проблемы и исследовать Java-приложения в производственной среде! Она определенно может спасти положение!»
Атул Шринивас Хот, SquareOne Insights
👍125🔥4
Также у нас есть группа Вконтакте https://vk.com/javatutorial в ней мы выкладываем видео, статьи, книги и вакансии. Не забудь подписаться 😉
👍6🔥421
Как и когда происходит увеличение количества корзин в HashMap?

Помимо capacity у HashMap есть еще поле loadFactor, на основании которого, вычисляется предельное количество занятых корзин capacity * loadFactor. По умолчанию loadFactor = 0.75. По достижению предельного значения, число корзин увеличивается в 2 раза и для всех хранимых элементов вычисляется новое «местоположение» с учетом нового числа корзин.
👍19🔥2
👩‍💻Java. Для чего нужен Optional?

В этом видео рассказывается, когда и почему следует применять Optional при разработке на языке программирования Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥53❤‍🔥1
Объясните смысл параметров в конструкторе HashMap(int initialCapacity, float loadFactor).

initialCapacity - исходный размер HashMap, количество корзин в хэш-таблице в момент её создания.
loadFactor - коэффициент заполнения HashMap, при превышении которого происходит увеличение количества корзин и автоматическое перехэширование. Равен отношению числа уже хранимых элементов в таблице к её размеру.
👍281
Spring. Все паттерны проектирования (2019) PDF

В этой книге дается обзор фреймворка Spring 5 и паттернов проектирования для него. Объясняется принцип внедрения зависимостей (dependency injection), играющий ключевую роль при создании слабосвязанного кода во фреймворке Spring. Затем рассматриваются классические паттерны «Банды четырех» при проектировании приложений на Spring. В следующих частях книги автор рассматривает паттерны аспектно-ориентированного программирования (AOP), шаблоны JDBC, позволяющие абстрагировать доступ к базе данных. В заключительных главах книги автор исследует работу с MVC, реактивные шаблоны проектирования и паттерны проектирования, применяемые при конкурентном и параллельном программировании в Spring.
12👍9
Ты Java-Разработчик уровня Senior? Значит встречаемся на USETECH Offer Weekend!
Мечтаешь работать в аккредитованной IT-компании с интересными проектами и развитой корпоративной культурой? Отправь резюме, пройди собеседование и получи предоффер в ГК Юзтех за выходные!

Даты offer weekend: 23-24 сентября 2023 года
Формат: онлайн
Дедлайн регистрации: 18 сентября 23:59

💥Что мы предлагаем:
Конкурентную заработную плату
Интересные задачи
Условия работы в соответствии с ТК РФ + социальный пакет
Формат работы — удаленно или в офисе
Классную команду и корпоративные мероприятия
Гибкий рабочий график
📌Зарегистрируйся, пройди собеседование и получи предоффер: https://clck.ru/35ayPP
👍7🔥3
👩‍💻 Запуск потоков в Java

В этой статье мы разберем различные способы запуска потоков. Описав задачу, мы выполнить ее в многопоточной среде при помощи класса Thread и сравним с продвинутыми способами работы создания и запуска потоков.

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
SOLID на практике в автоматизации тестирования

Как на практике реализовать все принципы и упростить разработку тестирования BDD ?

Примером будет интеграционное тестирование, но вам ничего не помешает реализовать для End2End

Читать статью
👍13🔥21
👩‍💻 GIT: ИСТОРИЯ СИСТЕМ КОНТРОЛЯ ВЕРСИЙ

В этом новом видео "История систем контроля версий" автор рассказывает об эволюции систем контроля версий, начиная с первых командных интерфейсов и заканчивая современными децентрализованными системами. Автор описывает основные принципы и функциональность таких систем, как SCCS, RCS, CVS, SVN и Git, рассказывает о их преимуществах и ограничениях, а также о том, как они повлияли на развитие современного программного обеспечения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥2
Introducing Spring Framework 6: Learning and Building Java-based Applications With Spring, Second Edition (2022) PDF, ePUB

Spring Framework 6 remains - by far - the leading de-facto "out of the box" practical Java meta application development framework for building complex enterprise, cloud-native applications as well as web applications and microservices. Introducing Spring Framework 6 is your hands-on tutorial guide for learning the Spring Framework 6 from top to bottom, and allows you to build an example application along the way from the ground-up.

As you learn the Spring Framework over the course of this book, you’ll incrementally build your first Spring application piece-by-piece as you learn each module, project or component of the Spring Framework and its extensions and ecosystem. As you learn the various fundamentals, you'll then apply them immediately to your Spring application. This Spring application, My Documents, enables you to learn by doing.
👍52🔥1
В чём заключается разница между IO и NIO?

Java IO (input-output) является потокоориентированным, а Java NIO (new/non-blocking io) – буфер-ориентированным. Потокоориентированный ввод/вывод подразумевает чтение/запись из потока/в поток одного или нескольких байт в единицу времени поочередно. Данная информация нигде не кэшируются. Таким образом, невозможно произвольно двигаться по потоку данных вперед или назад. В Java NIO данные сначала считываются в буфер, что дает больше гибкости при обработке данных.
• Потоки ввода/вывода в Java IO являются блокирующими. Это значит, что когда в потоке выполнения вызывается read() или write() метод любого класса из пакета java.io.*, происходит блокировка до тех пор, пока данные не будут считаны или записаны. Поток выполнения в данный момент не может делать ничего другого. Неблокирующий режим Java NIO позволяет запрашивать считанные данные из канала (channel) и получать только то, что доступно на данный момент, или вообще ничего, если доступных данных пока нет. Вместо того, чтобы оставаться заблокированным пока данные не станут доступными для считывания, поток выполнения может заняться чем-то другим. Тоже самое справедливо и для неблокирующего вывода. Поток выполнения может запросить запись в канал некоторых данных, но не дожидаться при этом пока они не будут полностью записаны.
• В Java NIO имеются селекторы, которые позволяют одному потоку выполнения мониторить несколько каналов ввода. Т.е. существует возможность зарегистрировать несколько каналов с селектором, а потом использовать один поток выполнения для обслуживания каналов, имеющих доступные для обработки данные, или для выбора каналов, готовых для записи.
👍28🎉21
МТС начала прием заявок на ИТ-олимпиаду True Tech Champ

Олимпиада имеет два трека для разных возрастных категорий:
— учащиеся старших классов и студенты могут соревноваться за призы до 1 млн рублей
— ИТ-специалисты могут выиграть до 3 млн рублей.

Регистрация доступна с 4 сентября по 5 октября на официальном сайте мероприятия.

Участникам предоставляется образовательная поддержка, включая курсы и мастер-классы. Это мероприятие призвано объединить ИТ-сообщество и выявить новые таланты в России.
😁10👍5