Сравните Iterator и ListIterator.
•
•
•
• При помощи
•
ListIterator
расширяет интерфейс Iterator
• ListIterator
может быть использован только для перебора элементов коллекции List
;•
Iterator
позволяет перебирать элементы только в одном направлении, при помощи метода next()
. Тогда как ListIterator
позволяет перебирать список в обоих направлениях, при помощи методов next()
и previous()
;•
ListIterator
не указывает на конкретный элемент: его текущая позиция располагается между элементами, которые возвращают методы previous()
и next()
.• При помощи
ListIterator
вы можете модифицировать список, добавляя/удаляя элементы с помощью методов add()
и remove()
. Iterator
не поддерживает данного функционала.👍24🔥4❤1
Грокаем функциональное мышление (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
Мы расскажем, какие навыки нужны разработчику для трудоустройства, а также сравним возможности Java и Python.
При регистрации дарим гайд по профессии Java-разработчика: 👉https://epic.st/kbvlEF
💪Вы попробуете написать Telegram-бота, даже если никогда не программировали.
🔔Спикер — Даниил Пилипенко, основатель и директор центра подбора IT-специалистов SymbioWay. Более 19 лет работает в сфере Java и веб-разработки. За его плечами более 500 выступлений на семинарах и конференциях.
🎁Участвуйте, задавайте вопросы и получите сертификат на скидку 10 000 рублей на любой курс Skillbox. Всем дошедшим до конца интенсива дарим электронную книгу издательства МИФ «Разум под контролем» Роджера Сайпа и Робба Збиерски.
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
👍4❤2
Что произойдет при вызове Iterator.next() без предварительного вызова Iterator.hasNext()?
Если итератор указывает на последний элемент коллекции, то возникнет исключение
Если итератор указывает на последний элемент коллекции, то возникнет исключение
NoSuchElementException
, иначе будет возвращен следующий элемент.👍13
Модернизация Java Enterprise: облачные технологии для разработчиков (2023) PDF, ePUB
В разговорах о технологиях постоянно упоминаются контейнеры, микросервисы и распределенные системы, однако большинство приложений по-прежнему работают на базе монолитных архитектур, основанных на традиционных процессах разработки. Давайте поближе познакомимся с хорошо зарекомендовавшими себя моделями на основе Java и разберемся, как перенести эти монолитные приложения в будущее.
Опираясь на многолетний опыт модернизации приложений, Маркус Эйзеле и Натале Винто показывают, что необходимо сделать для обновления приложений Java, как разделить на части монолитные приложения и перейти на современный программный стек, работающий как в облаке, так и в локальной среде.
В разговорах о технологиях постоянно упоминаются контейнеры, микросервисы и распределенные системы, однако большинство приложений по-прежнему работают на базе монолитных архитектур, основанных на традиционных процессах разработки. Давайте поближе познакомимся с хорошо зарекомендовавшими себя моделями на основе Java и разберемся, как перенести эти монолитные приложения в будущее.
Опираясь на многолетний опыт модернизации приложений, Маркус Эйзеле и Натале Винто показывают, что необходимо сделать для обновления приложений Java, как разделить на части монолитные приложения и перейти на современный программный стек, работающий как в облаке, так и в локальной среде.
👍15🔥4❤1
❓Java Guru - вопросы и задачи с собеседований. Канал с помощью которого ты точно получишь оффер!
👩💻 Android Developer - канал для андроид разработчиков! Статьи, вопросы и задачи с собеседований, лайфхаки.
👩💻 Kotlin Developer - самый топовый канал для котлин разработчика!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
📰 Java News - канал с последними новостями из мира Java!
📕 Книги для 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🔥5❤1
Более чем за десять лет работы со Spring Framework и Enterprise Java автор успел полюбить Spring Framework, возненавидеть и в итоге пересмотреть свои подходы к работе с ним. То же самое касается работы с рефлексией в целом и работы с АОП в частности.
Всё это из-за того, что магия фреймворков иногда ломается, и делает это очень неочевидно.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Когда ломается магия фреймворков...
Более чем за десять лет работы со Spring Framework и Enterprise Java я успел полюбить Spring Framework, возненавидеть и в итоге пересмотреть свои подходы к работе с ним. То же самое касается работы с рефлексией в целом и работы с АОП в частности.
Всё это…
Всё это…
👍13🔥6
Kafka в действии (2022) True PDF
Это практическое руководство показывает, как использовать распределенную потоковую платформу Apache Kafka для удовлетворения различных бизнес-требований. Рассказывается, как устроена Kafka и где она может пригодиться на практике; описываются характеристики проектов, в которых может пригодиться эта платформа. Рассматриваются основные ее компоненты – клиенты и кластер, представлены варианты улучшения работающего кластера. Книга адресована разработчикам, желающим ознакомиться с идеей потоковой обработки данных. Для изучения примеров кода понадобятся базовые знания командной строки; желательно иметь навыки программирования на языке Java.
Это практическое руководство показывает, как использовать распределенную потоковую платформу Apache Kafka для удовлетворения различных бизнес-требований. Рассказывается, как устроена Kafka и где она может пригодиться на практике; описываются характеристики проектов, в которых может пригодиться эта платформа. Рассматриваются основные ее компоненты – клиенты и кластер, представлены варианты улучшения работающего кластера. Книга адресована разработчикам, желающим ознакомиться с идеей потоковой обработки данных. Для изучения примеров кода понадобятся базовые знания командной строки; желательно иметь навыки программирования на языке Java.
👍15🔥6
Как поведёт себя коллекция, если вызвать iterator.remove()?
Если вызову
Если вызову
iterator.remove()
предшествовал вызов iterator.next()
, то iterator.remove()
удалит элемент коллекции, на который указывает итератор, в противном случае будет выброшено IllegalStateException()
.👍27
В этом видео автор рассказывает, как решить тестовое задание SQL Parser на Java/Kotlin.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Тестовое задание Java Kotlin - SQL Parser
В этом видео я рассказываю, как решить тестовое задание SQL Parser на Java/Kotlin.
Каркас - https://github.com/peterarsentev/job4j_sql_parser
Тестовые задания - https://github.com/Ecwid/new-job/blob/master/SQL-parser.md
Курс по Java/Kotlin - https://job4j.ru/
Каркас - https://github.com/peterarsentev/job4j_sql_parser
Тестовые задания - https://github.com/Ecwid/new-job/blob/master/SQL-parser.md
Курс по Java/Kotlin - https://job4j.ru/
👍9❤🔥1❤1🎅1
В этом видео автор рассказывает о том, что такое лямбда-выражения в языке программирования Java. На примерах показывает, для чего нужны лямбды, и какую роль они играют при написании кода в функциональном стиле.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Java. Лямбда-выражения.
В этом видео я рассказываю о том, что такое лямбда-выражения в языке программирования Java. На примерах показываю, для чего нужны лябды, и какую роль они играют при написании кода в функциональном стиле.
Стать спонсором канала:
https://www.youtube.com/c…
Стать спонсором канала:
https://www.youtube.com/c…
👍20🔥2❤1
Spring в действии, 6-е издание (2022) True PDF
Каждый разработчик на Java должен быть знаком со Spring! Почему? Этот мощный фреймворк избавляет от множества утомительной работы, связанной с настройкой и решением повторяющихся задач, и упрощает создание готового к работе программного обеспечения промышленного качества. Последние обновления в значительной мере способствуют увеличению продуктивности программиста при разработке микросервисов, реактивных служб и других современных приложений. Неудивительно, что больше половины всех разработчиков на Java используют Spring.
Перед вами перевод 6-го издания великолепной книги Крейга Уоллса. Шаг за шагом вы пройдете путь создания законченного веб-приложения на основе базы данных. Новое издание охватывает не только основы Spring, но и новые возможности, такие как реактивные потоки или интеграция с Kubernetes и RSocket.
Каждый разработчик на Java должен быть знаком со Spring! Почему? Этот мощный фреймворк избавляет от множества утомительной работы, связанной с настройкой и решением повторяющихся задач, и упрощает создание готового к работе программного обеспечения промышленного качества. Последние обновления в значительной мере способствуют увеличению продуктивности программиста при разработке микросервисов, реактивных служб и других современных приложений. Неудивительно, что больше половины всех разработчиков на Java используют Spring.
Перед вами перевод 6-го издания великолепной книги Крейга Уоллса. Шаг за шагом вы пройдете путь создания законченного веб-приложения на основе базы данных. Новое издание охватывает не только основы Spring, но и новые возможности, такие как реактивные потоки или интеграция с Kubernetes и RSocket.
👍22🔥6❤3
Как поведёт себя уже инстанциированный итератор для collection, если вызвать collection.remove()?
При следующем вызове методов итератора будет выброшено
При следующем вызове методов итератора будет выброшено
ConcurrentModificationException
.👍14
Шпаргалка по структурам данных в Java
К каждому собеседованию важно готовиться и проще всего это делать, когда перед глазами есть готовый материал. В данной публикации я хочу поделиться с вами своей шпаргалкой, которую использую перед собеседованиями для повторения структур данных в Java.
Читать статью
К каждому собеседованию важно готовиться и проще всего это делать, когда перед глазами есть готовый материал. В данной публикации я хочу поделиться с вами своей шпаргалкой, которую использую перед собеседованиями для повторения структур данных в Java.
Читать статью
Teletype
Шпаргалка по структурам данных в Java
К каждому собеседованию важно готовиться и проще всего это делать, когда перед глазами есть готовый материал. В данной публикации я хочу...
👍17🔥10❤1
Основы программирования с Java (2022) True PDF
Эта книга предназначена для всех, кто хочет изучить основы программирования с использованием языка Java.
Эта книга даст понимание основных элементов программирования на Java и абстракции данных с использованием объектно-ориентированного подхода. С этой книгой Вы научитесь писать программы с использованием переменных, массивов, управляющих операторов, циклов, рекурсии, абстракции данных и объектов в интегрированной среде разработки. Вы изучите основы языка программирования Java, познакомитесь с его синтаксисом, типами данных, объектами и классами и многим другим.
Эта книга предназначена для всех, кто хочет изучить основы программирования с использованием языка Java.
Эта книга даст понимание основных элементов программирования на Java и абстракции данных с использованием объектно-ориентированного подхода. С этой книгой Вы научитесь писать программы с использованием переменных, массивов, управляющих операторов, циклов, рекурсии, абстракции данных и объектов в интегрированной среде разработки. Вы изучите основы языка программирования Java, познакомитесь с его синтаксисом, типами данных, объектами и классами и многим другим.
👍12🔥2
Как избежать ConcurrentModificationException во время перебора коллекции?
• Попробовать подобрать или реализовать самостоятельно другой итератор, работающий по принципу
• Использовать
• Преобразовать список в массив и перебирать массив.
• Блокировать изменения списка на время перебора с помощью блока
Отрицательная сторона последних двух вариантов - ухудшение производительности.
• Попробовать подобрать или реализовать самостоятельно другой итератор, работающий по принципу
fail-safe
.• Использовать
ConcurrentHashMap
и CopyOnWriteArrayList
.• Преобразовать список в массив и перебирать массив.
• Блокировать изменения списка на время перебора с помощью блока
synchronized
.Отрицательная сторона последних двух вариантов - ухудшение производительности.
👍20
new vs valueOf
Старайтесь всегда использовать метод
Все оболочки, кроме чисел с плавающей точкой, от Byte до Long, имеют кэш. По умолчанию этот кэш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кэша. Значение из кэша достается в 3.5 раза быстрее, чем при использовании конструктора, плюс идёт экономия памяти.
Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной.
Старайтесь всегда использовать метод
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, а содержимое данных строк одинаково.
Ответ:
s1 == s2 ? true
s1 == s3 ? false
s1 equals s3 ? true
Вопрос на понимание работы пула строк в Java и на понимание сравнения строк. Разберем детально: Переменная s1 ссылается на строку в пуле уникальных строк в памяти, переменная s2 ссылается на ту же саму строку в пуле уникальных строк, что и переменная s1, первое сравнение будет true, так как s1 и s2 ссылаются на один и тот же объект. Переменная s3 ссылается на новый объект, который не находится в пуле уникальных строк, так как он создан через new, следовательно второе сравнение будет false, так как сравниваем переменные которые ссылаются на на два разных объекта. Третье сравнение будет true, так как мы сравниваем строки посимвольно на эквивалентность через equals, а содержимое данных строк одинаково.
👍41❤5🔥5