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

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

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

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

Сообщество VK https://vk.com/javatutorial
Download Telegram
Сравните Iterator и ListIterator.

ListIterator расширяет интерфейс Iterator
ListIterator может быть использован только для перебора элементов коллекции List;
Iterator позволяет перебирать элементы только в одном направлении, при помощи метода next(). Тогда как ListIterator позволяет перебирать список в обоих направлениях, при помощи методов next() и previous();
ListIterator не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous() и next().
• При помощи ListIterator вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add() и remove(). Iterator не поддерживает данного функционала.
👍24🔥41
Грокаем функциональное мышление (2023) PDF

Кодовые базы разрастаются, становясь всё сложнее и запутаннее, что не может не пугать разработчиков. Как обнаружить код, изменяющий состояние вашей системы? Как сделать код таким, чтобы он не увеличивал сложность и запутанность кодовой базы? Большую часть «действий», изменяющих состояние, можно превратить в «вычисления», чтобы ваш код стал проще и логичнее. Вы научитесь бороться со сложными ошибками синхронизации, которые неизбежно проникают в асинхронный и многопоточный код, узнаете, как компонуемые абстракции предотвращают дублирование кода, и откроете для себя новые уровни его выразительности. Книга предназначена для разработчиков среднего и высокого уровня, создающих сложный код. Примеры, иллюстрации, вопросы для самопроверки и практические задания помогут надежно закрепить новые знания.
👍26🔥3🤩2
Java — один из самых популярных языков программирования в мире. Хотите начать путь в IT с его изучения? Присоединяйтесь к практическому онлайн-интенсиву по Java-разработке 31 июля в 19:00 (МСК).


Мы расскажем, какие навыки нужны разработчику для трудоустройства, а также сравним возможности Java и Python.

При регистрации дарим гайд по профессии Java-разработчика: 👉https://epic.st/kbvlEF

💪Вы попробуете написать Telegram-бота, даже если никогда не программировали.

🔔Спикер — Даниил Пилипенко, основатель и директор центра подбора IT-специалистов SymbioWay. Более 19 лет работает в сфере Java и веб-разработки. За его плечами более 500 выступлений на семинарах и конференциях.

🎁Участвуйте, задавайте вопросы и получите сертификат на скидку 10 000 рублей на любой курс Skillbox. Всем дошедшим до конца интенсива дарим электронную книгу издательства МИФ «Разум под контролем» Роджера Сайпа и Робба Збиерски.


Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
👍42
Что произойдет при вызове Iterator.next() без предварительного вызова Iterator.hasNext()?

Если итератор указывает на последний элемент коллекции, то возникнет исключение NoSuchElementException, иначе будет возвращен следующий элемент.
👍13
Модернизация Java Enterprise: облачные технологии для разработчиков (2023) PDF, ePUB

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

Опираясь на многолетний опыт модернизации приложений, Маркус Эйзеле и Натале Винто показывают, что необходимо сделать для обновления приложений Java, как разделить на части монолитные приложения и перейти на современный программный стек, работающий как в облаке, так и в локальной среде.
👍15🔥41
Java Guru - вопросы и задачи с собеседований. Канал с помощью которого ты точно получишь оффер!

👩‍💻 Android Developer - канал для андроид разработчиков! Статьи, вопросы и задачи с собеседований, лайфхаки.

👩‍💻 Kotlin Developer - самый топовый канал для котлин разработчика!

📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!

📰 Java News - канал с последними новостями из мира Java!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2🤩1
Сколько элементов будет пропущено, если Iterator.next() будет вызван после 10-ти вызовов Iterator.hasNext()?

Нисколько - hasNext() осуществляет только проверку наличия следующего элемента.
👍21🔥51
👩‍💻 Когда ломается магия фреймворков...

Более чем за десять лет работы со Spring Framework и Enterprise Java автор успел полюбить Spring Framework, возненавидеть и в итоге пересмотреть свои подходы к работе с ним. То же самое касается работы с рефлексией в целом и работы с АОП в частности.

Всё это из-за того, что магия фреймворков иногда ломается, и делает это очень неочевидно.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥6
Kafka в действии (2022) True PDF

Это практическое руководство показывает, как использовать распределенную потоковую платформу Apache Kafka для удовлетворения различных бизнес-требований. Рассказывается, как устроена Kafka и где она может пригодиться на практике; описываются характеристики проектов, в которых может пригодиться эта платформа. Рассматриваются основные ее компоненты – клиенты и кластер, представлены варианты улучшения работающего кластера. Книга адресована разработчикам, желающим ознакомиться с идеей потоковой обработки данных. Для изучения примеров кода понадобятся базовые знания командной строки; желательно иметь навыки программирования на языке Java.
👍15🔥6
Как поведёт себя коллекция, если вызвать iterator.remove()?

Если вызову iterator.remove() предшествовал вызов iterator.next(), то iterator.remove() удалит элемент коллекции, на который указывает итератор, в противном случае будет выброшено IllegalStateException().
👍27
👩‍💻 Java. Лямбда-выражения.

В этом видео автор рассказывает о том, что такое лямбда-выражения в языке программирования Java. На примерах показывает, для чего нужны лямбды, и какую роль они играют при написании кода в функциональном стиле.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥21
Spring в действии, 6-е издание (2022) True PDF

Каждый разработчик на Java должен быть знаком со Spring! Почему? Этот мощный фреймворк избавляет от множества утомительной работы, связанной с настройкой и решением повторяющихся задач, и упрощает создание готового к работе программного обеспечения промышленного качества. Последние обновления в значительной мере способствуют увеличению продуктивности программиста при разработке микросервисов, реактивных служб и других современных приложений. Неудивительно, что больше половины всех разработчиков на Java используют Spring.
Перед вами перевод 6-го издания великолепной книги Крейга Уоллса. Шаг за шагом вы пройдете путь создания законченного веб-приложения на основе базы данных. Новое издание охватывает не только основы Spring, но и новые возможности, такие как реактивные потоки или интеграция с Kubernetes и RSocket.
👍22🔥63
Как поведёт себя уже инстанциированный итератор для collection, если вызвать collection.remove()?

При следующем вызове методов итератора будет выброшено ConcurrentModificationException.
👍14
Шпаргалка по структурам данных в Java

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

Читать статью
👍17🔥101
Основы программирования с Java (2022) True PDF

Эта книга предназначена для всех, кто хочет изучить основы программирования с использованием языка Java.
Эта книга даст понимание основных элементов программирования на Java и абстракции данных с использованием объектно-ориентированного подхода. С этой книгой Вы научитесь писать программы с использованием переменных, массивов, управляющих операторов, циклов, рекурсии, абстракции данных и объектов в интегрированной среде разработки. Вы изучите основы языка программирования Java, познакомитесь с его синтаксисом, типами данных, объектами и классами и многим другим.
👍12🔥2
Как избежать ConcurrentModificationException во время перебора коллекции?

• Попробовать подобрать или реализовать самостоятельно другой итератор, работающий по принципу fail-safe.
• Использовать ConcurrentHashMap и CopyOnWriteArrayList.
• Преобразовать список в массив и перебирать массив.
• Блокировать изменения списка на время перебора с помощью блока synchronized.
Отрицательная сторона последних двух вариантов - ухудшение производительности.
👍20
new vs valueOf

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

Все оболочки, кроме чисел с плавающей точкой, от Byte до Long, имеют кэш. По умолчанию этот кэш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кэша. Значение из кэша достается в 3.5 раза быстрее, чем при использовании конструктора, плюс идёт экономия памяти.

Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной.
37👍5
Зачем добавили ArrayList, если уже был Vector?

• Методы класса Vector синхронизированы, а ArrayList - нет;
• По умолчанию, Vector удваивает свой размер, когда заканчивается выделенная под элементы память. ArrayList же увеличивает свой размер только на половину.

Vector это устаревший класс и его использование не рекомендовано.
👍30
Каким будет результат сравнения в следующем коде?

Ответ:
s1 == s2 ? true

s1 == s3 ? false

s1 equals s3 ? true

Вопрос на понимание работы пула строк в Java и на понимание сравнения строк. Разберем детально: Переменная s1 ссылается на строку в пуле уникальных строк в памяти, переменная s2 ссылается на ту же саму строку в пуле уникальных строк, что и переменная s1, первое сравнение будет true, так как s1 и s2 ссылаются на один и тот же объект. Переменная s3 ссылается на новый объект, который не находится в пуле уникальных строк, так как он создан через new, следовательно второе сравнение будет false, так как сравниваем переменные которые ссылаются на на два разных объекта. Третье сравнение будет true, так как мы сравниваем строки посимвольно на эквивалентность через equals, а содержимое данных строк одинаково.
👍415🔥5