Как перебрать элементы LinkedList в обратном порядке, не используя медленный get(index)?
Для этого в
Для этого в
LinkedList
есть обратный итератор, который можно получить вызва метод descendingIterator()
.В данном видео автор покажет, как создать HTTP-сервер на чистой Java и на сокетах. Итоговое приложение будет раздавать файлы из указанной при запуске директории. В создании http-сервера на Java автор будет использовать только средства из стандартной библиотеки (Java SE), к примеру, сокеты (socket).
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Создание HTTP-сервера на Java
В данном видео я покажу, как создать HTTP-сервер на чистой Java и на сокетах. Итоговое приложение будет раздавать файлы из указанной при запуске директории. В создании http-сервера на Java я буду использовать только средства из стандартной библиотеки (Java…
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Java. Шифруем данные для открытой передачи.
Шифруем текст с использованием ключа данные для открытой передачи в GET для разных ситуаций. Не использовал secure библиотеки - по каким-то известным только мне тогдашнему причинам.
Если не охота заморачиватья с шифрованием - из комментария подписчика @Александр…
Если не охота заморачиватья с шифрованием - из комментария подписчика @Александр…
🐬 ТОП-10 самых часто используемых запросов MySQL
Из этой статьи вы узнаете о 10 наиболее часто используемых запросах в MySQL, которыми пользуются новички и эксперты в области управления базами данных.
🔗 Основной сайт
🔗 Зеркало
Из этой статьи вы узнаете о 10 наиболее часто используемых запросах в MySQL, которыми пользуются новички и эксперты в области управления базами данных.
🔗 Основной сайт
🔗 Зеркало
#вопросы_с_собеседований
Как исключить поля из сериализации?
Для управления сериализацией при определении полей можно использовать ключевое слово transient, таким образом исключив поля из общего процесса сериализации.
Как исключить поля из сериализации?
Для управления сериализацией при определении полей можно использовать ключевое слово transient, таким образом исключив поля из общего процесса сериализации.
🗺️ Кем стать в IT: 9 ролей специалистов в IT-проекте
Если вы решили войти в АйТи, но еще не определились с направлением, наша пояснительная бригада спешит на помощь – разбираем роли каждого участника в жизненном цикле ИТ-проекта.
🔗 Основной сайт
🔗 Зеркало
Если вы решили войти в АйТи, но еще не определились с направлением, наша пояснительная бригада спешит на помощь – разбираем роли каждого участника в жизненном цикле ИТ-проекта.
🔗 Основной сайт
🔗 Зеркало
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
ZGC: The Future of Low-Latency Garbage Collection Is Here
The Z Garbage Collector (ZGC) is a scalable low-latency garbage collector providing sub-millisecond max pause times. Get an overview of the design principles behind ZGC, how it performs, and how to best use it to reduce latency for your application. We also…
#вопросы_с_собеседований
Stack считается «устаревшим». Чем его рекомендуют заменять? Почему?
Stack считается «устаревшим». Чем его рекомендуют заменять? Почему?
Stack
был добавлен в Java 1.0
как реализация стека LIFO (last-in-first-out)
и является расширением коллекции Vector
, хотя это несколько нарушает понятие стека (например, класс Vector
предоставляет возможность обращаться к любому элементу по индексу). Является частично синхронизированной коллекцией (кроме метода добавления push()
) с вытекающими отсюда последствиями в виде негативного воздействия на производительность. После добавления в Java 1.6
интерфейса Deque
, рекомендуется использовать реализации именно этого интерфейса, например, ArrayDeque
.Проверка на нечетность
Можно ли использовать этот код с примера 1 на картинке для точного определения нечетного числа?
Надеюсь, вы заметили хитрость. Если мы решим таким образом проверить отрицательное нечетное число (например, -5), остаток от деления не будет равен единице, поэтому воспользуйтесь более точным методом (пример 2).
Он не только решает проблему отрицательных чисел, но и работает более производительно, чем предыдущий метод. Арифметические и логические операции выполняются намного быстрее, чем умножение и деление.
Можно ли использовать этот код с примера 1 на картинке для точного определения нечетного числа?
Надеюсь, вы заметили хитрость. Если мы решим таким образом проверить отрицательное нечетное число (например, -5), остаток от деления не будет равен единице, поэтому воспользуйтесь более точным методом (пример 2).
Он не только решает проблему отрицательных чисел, но и работает более производительно, чем предыдущий метод. Арифметические и логические операции выполняются намного быстрее, чем умножение и деление.
LinkedHashMap - что в нем от LinkedList, а что от HashMap?
Реализация
При добавлении элемента, который уже присутствует в
Реализация
LinkedHashMap
отличается от HashMap
поддержкой двухсвязанного списка, определяющего порядок итерации по элементам структуры данных. По умолчанию элементы списка упорядочены согласно их порядку добавления в LinkedHashMap
(insertion-order)
. Однако порядок итерации можно изменить, установив параметр конструктора accessOrder
в значение true
. В этом случае доступ осуществляется по порядку последнего обращения к элементу (access-order)
. Это означает, что при вызове методов get()
или put()
элемент, к которому обращаемся, перемещается в конец списка.При добавлении элемента, который уже присутствует в
LinkedHashMap
(т.е. с одинаковым ключом), порядок итерации по элементам не изменяется.#вопросы_с_собеседований
Как получить доступ к переопределенным методам родительского класса?
С помощью ключевого слова super мы можем обратиться к любому члену родительского класса - методу или полю, если они не определены с модификатором private.
Как получить доступ к переопределенным методам родительского класса?
С помощью ключевого слова super мы можем обратиться к любому члену родительского класса - методу или полю, если они не определены с модификатором private.
#вопросы_с_собеседований
Что такое double checked locking Singleton?
double checked locking Singleton - это один из способов создания потокобезопасного класса, реализующего шаблон Одиночка. Данный метод пытается оптимизировать производительность, блокируясь только случае, когда экземпляр одиночки создаётся впервые.
Следует заметить, что требование volatile обязательно. Проблема Double Checked Lock заключается в модели памяти Java, точнее в порядке создания объектов, когда возможна ситуация, при которой другой поток может получить и начать использовать (на основании условия, что указатель не нулевой) не полностью сконструированный объект. Хотя эта проблема была частично решена в JDK 1.5, рекомендация использовать volatile для Double Cheсked Lock остаётся в силе.
Что такое double checked locking Singleton?
double checked locking Singleton - это один из способов создания потокобезопасного класса, реализующего шаблон Одиночка. Данный метод пытается оптимизировать производительность, блокируясь только случае, когда экземпляр одиночки создаётся впервые.
Следует заметить, что требование volatile обязательно. Проблема Double Checked Lock заключается в модели памяти Java, точнее в порядке создания объектов, когда возможна ситуация, при которой другой поток может получить и начать использовать (на основании условия, что указатель не нулевой) не полностью сконструированный объект. Хотя эта проблема была частично решена в JDK 1.5, рекомендация использовать volatile для Double Cheсked Lock остаётся в силе.
Все о ключевых словах static и final
Чтобы получить доступ к членам класса в Java, нужно сначала создать экземпляр класса, а затем вызвать членов класса с помощью переменной экземпляра. Но иногда нужно получить доступ к членам класса, не создавая никаких переменных.
В таком случае можно воспользоваться ключевым словом static, то есть объявить членов класса статическими. В Java большинство членов служебного класса являются статическими. Вот несколько примеров.
• java.util.Objects содержит статические служебные операции для метода объекта.
• java.util.Collections состоит исключительно из статических методов, которые работают с коллекциями или возвращают их.
https://nuancesprog.ru/p/13968/
Чтобы получить доступ к членам класса в Java, нужно сначала создать экземпляр класса, а затем вызвать членов класса с помощью переменной экземпляра. Но иногда нужно получить доступ к членам класса, не создавая никаких переменных.
В таком случае можно воспользоваться ключевым словом static, то есть объявить членов класса статическими. В Java большинство членов служебного класса являются статическими. Вот несколько примеров.
• java.util.Objects содержит статические служебные операции для метода объекта.
• java.util.Collections состоит исключительно из статических методов, которые работают с коллекциями или возвращают их.
https://nuancesprog.ru/p/13968/
NOP::Nuances of programming
Все о ключевых словах static и final
Разберемся, как объявлять классы, методы и переменные с использованием ключевых слов static и final, а также узнаем, для каких случаев целесообразно их применять.
alibaba/fastjson
Библиотека для быстрого преобразования любых произвольных Java-объектов в JSON-представление и обратно. Поддерживает даже объекты со сложной структурой (глубокими иерархиями наследования и использованием универсальных типов).
FastJson улучшает производительность сервера и клиента и позволяет использовать для объектов любые пользовательские представления.
https://github.com/alibaba/fastjson
Библиотека для быстрого преобразования любых произвольных Java-объектов в JSON-представление и обратно. Поддерживает даже объекты со сложной структурой (глубокими иерархиями наследования и использованием универсальных типов).
FastJson улучшает производительность сервера и клиента и позволяет использовать для объектов любые пользовательские представления.
https://github.com/alibaba/fastjson
GitHub
GitHub - alibaba/fastjson: FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade.
FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade. - alibaba/fastjson
ReactiveX/RxJava
Библиотека RxJava, основанная на API ReactiveX. Она позволяет писать асинхронные событийно-управляемые программы для виртуальной Java машины, поддерживает последовательности событий и их комбинации. В основе работы лежит классический паттерн Наблюдатель, только вместо одного объекта используется целый поток данных.
C RxJava можно больше не беспокоиться о низкоуровневом распараллеливании, синхронизации, потокобезопасности и обработке ошибок.
https://github.com/ReactiveX/RxJava
Библиотека RxJava, основанная на API ReactiveX. Она позволяет писать асинхронные событийно-управляемые программы для виртуальной Java машины, поддерживает последовательности событий и их комбинации. В основе работы лежит классический паттерн Наблюдатель, только вместо одного объекта используется целый поток данных.
C RxJava можно больше не беспокоиться о низкоуровневом распараллеливании, синхронизации, потокобезопасности и обработке ошибок.
https://github.com/ReactiveX/RxJava
GitHub
GitHub - ReactiveX/RxJava: RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs…
RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM. - ReactiveX/RxJava
В этом видео речь пойдет об обработке исключений на уровне контроллера на языке Java. Автор покажет, какие инструменты есть у Spring.
https://youtu.be/Ax0pHPD5-nE
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
JAVA SPRING EXCEPTION HANDLING | ОБРАБОТКА ИСКЛЮЧЕНИЙ ЗА 5 МИНУТ
В этом видео речь пойдет об обработке исключений на уровне контроллера на языке Java. Покажу, какие инструменты есть у Spring.
Код можно посмотреть тут:
https://github.com/dispikerton/exceptionHandling
00:23 - try catch, ResponseEntity
00:47 - наследование…
Код можно посмотреть тут:
https://github.com/dispikerton/exceptionHandling
00:23 - try catch, ResponseEntity
00:47 - наследование…
🍎 iOS-разработка: awesome-ios
🔬Data Science: awesome-datascience
👩💻 Linux: Awesome-Linux-Software
🐋 Docker: awesome-docker
🕵️ Информационная безопасность: awesome-security
🧪 QA: awesome-testing
#избранное
Please open Telegram to view this post
VIEW IN TELEGRAM
Всем привет 👋
В этом году мы готовим для вас много новых проектов, статей, вебинаров. И хотим узнать, чем вы живете и дышите в мире IT.
Поделитесь, пожалуйста, ссылками и ресурсами — что вы сейчас смотрите, читаете, слушаете из профессиональных ресурсов? Это займёт меньше минуты.
👉 Опрос тут
Спасибо за уделенное время 🙏
В этом году мы готовим для вас много новых проектов, статей, вебинаров. И хотим узнать, чем вы живете и дышите в мире IT.
Поделитесь, пожалуйста, ссылками и ресурсами — что вы сейчас смотрите, читаете, слушаете из профессиональных ресурсов? Это займёт меньше минуты.
👉 Опрос тут
Спасибо за уделенное время 🙏
#вопросы_с_собеседований
Согласно Кнуту и Кормену существует две основных реализации хэш-таблицы: на основе открытой адресации и на основе метода цепочек. Как реализована HashMap? Почему, по вашему мнению, была выбрана именно эта реализация? В чем плюсы и минусы каждого подхода?
Для метода цепочек коэффициент заполнения может быть больше 1 и с увеличением числа элементов производительность убывает линейно. Такие таблицы удобно использовать, если заранее неизвестно количество хранимых элементов, либо их может быть достаточно много, что приводит к большим значениям коэффициента заполнения.
Среди методов открытой реализации различают:
• линейное пробирование;
• квадратичное пробирование;
• двойное хэширование.
Недостатки структур с методом открытой адресации:
• Количество элементов в хэш-таблице не может превышать размера массива. По мере увеличения числа элементов и повышения коэффициента заполнения производительность структуры резко падает, поэтому необходимо проводить перехэширование.
• Сложно организовать удаление элемента.
• Первые два метода открытой адресации приводят к проблеме первичной и вторичной группировок.
Преимущества хэш-таблицы с открытой адресацией:
• отсутствие затрат на создание и хранение объектов списка;
• простота организации сериализации/десериализации
Согласно Кнуту и Кормену существует две основных реализации хэш-таблицы: на основе открытой адресации и на основе метода цепочек. Как реализована HashMap? Почему, по вашему мнению, была выбрана именно эта реализация? В чем плюсы и минусы каждого подхода?
HashMap
реализован с использованием метода цепочек, т.е. каждой ячейке массива (корзине) соответствует свой связный список и при возникновении коллизии осуществляется добавление нового элемента в этот список.Для метода цепочек коэффициент заполнения может быть больше 1 и с увеличением числа элементов производительность убывает линейно. Такие таблицы удобно использовать, если заранее неизвестно количество хранимых элементов, либо их может быть достаточно много, что приводит к большим значениям коэффициента заполнения.
Среди методов открытой реализации различают:
• линейное пробирование;
• квадратичное пробирование;
• двойное хэширование.
Недостатки структур с методом открытой адресации:
• Количество элементов в хэш-таблице не может превышать размера массива. По мере увеличения числа элементов и повышения коэффициента заполнения производительность структуры резко падает, поэтому необходимо проводить перехэширование.
• Сложно организовать удаление элемента.
• Первые два метода открытой адресации приводят к проблеме первичной и вторичной группировок.
Преимущества хэш-таблицы с открытой адресацией:
• отсутствие затрат на создание и хранение объектов списка;
• простота организации сериализации/десериализации
Что такое естественный порядок элементов коллекции?
Anonymous Quiz
22%
Порядок, в котором элементы располагаются в памяти
42%
Порядок, который получается при добавлении элементов кодом
10%
Порядок, обеспечиваемый работой пользовательского компаратора
26%
Порядок, который обеспечивается JVM
Please open Telegram to view this post
VIEW IN TELEGRAM