#Вопросы_с_собеседования
Для ArrayList или для LinkedList операция добавления элемента в середину (list.add(list.size()/2, newElement)) медленнее?
Для ArrayList:
• проверка массива на вместимость. Если вместимости недостаточно, то увеличение размера массива и копирование всех элементов в новый массив
• копирование всех элементов, расположенных правее от позиции вставки, на одну позицию вправо
• вставка элемента
Для LinkedList:
• поиск позиции вставки
• вставка элемента
В худшем случае вставка в середину списка эффективнее для
Для ArrayList или для LinkedList операция добавления элемента в середину (list.add(list.size()/2, newElement)) медленнее?
Для ArrayList:
• проверка массива на вместимость. Если вместимости недостаточно, то увеличение размера массива и копирование всех элементов в новый массив
(O(N));• копирование всех элементов, расположенных правее от позиции вставки, на одну позицию вправо
(O(N));• вставка элемента
(O(1)).Для LinkedList:
• поиск позиции вставки
(O(N));• вставка элемента
(O(1)).В худшем случае вставка в середину списка эффективнее для
LinkedList. В остальных - скорее всего, для ArrayList, поскольку копирование элементов осуществляется за счет вызова быстрого системного метода System.arraycopy().👍23
#Вопросы_с_собеседования
Как определить, содержит ли массив определенное значение в Java с помощью потоков?
Чтобы проверить, содержит ли массив значений int, double или long значение, используйте IntStream, DoubleStream или LongStream соответственно.
Как определить, содержит ли массив определенное значение в Java с помощью потоков?
Чтобы проверить, содержит ли массив значений int, double или long значение, используйте IntStream, DoubleStream или LongStream соответственно.
👍19🔥3❤1
#Вопросы_с_собеседования
Чем отличаются конструктор по-умолчанию, конструктор копирования и конструктор с параметрами?
У конструктора по умолчанию отсутствуют какие-либо аргументы. Конструктор копирования принимает в качестве аргумента уже существующий объект класса для последующего создания его клона. Конструктор с параметрами имеет в своей сигнатуре аргументы (обычно необходимые для инициализации полей класса).
Чем отличаются конструктор по-умолчанию, конструктор копирования и конструктор с параметрами?
👍18❤2
#Вопросы_с_собеседования
Какие классы позволяют ускорить чтение/запись за счет использования буфера?
•
•
•
Какие классы позволяют ускорить чтение/запись за счет использования буфера?
•
BufferedInputStream(InputStream in)/ BufferedInputStream(InputStream in, int size),•
BufferedOutputStream(OutputStream out)/BufferedOutputStream(OutputStream out, int size),•
BufferedReader(Reader r)/BufferedReader(Reader in, int sz),
• BufferedWriter(Writer out)/BufferedWriter(Writer out, int sz)👍6
#Вопросы_с_собеседования
❓Что такое абстрактный метод в языке Java?
Абстрактный метод – это метод без тела. Вы просто объявляете метод, не определяя его, с использованием ключевого слова abstract в объявлении метода. Все объявленные внутри интерфейса в языке Java методы – по умолчанию абстрактные. Пример абстрактного метода в языке Java представлен на картинке.
Теперь, для реализации этого метода необходимо расширить абстрактный класс и этот метод переопределить.
❓Что такое абстрактный метод в языке Java?
Абстрактный метод – это метод без тела. Вы просто объявляете метод, не определяя его, с использованием ключевого слова abstract в объявлении метода. Все объявленные внутри интерфейса в языке Java методы – по умолчанию абстрактные. Пример абстрактного метода в языке Java представлен на картинке.
Теперь, для реализации этого метода необходимо расширить абстрактный класс и этот метод переопределить.
👍22
Реализация авторизации на основе ролей в Spring Boot с помощью Keycloak
Контроль доступа на основе ролей является обязательным условием для любого приложения, имеющего дело с пользователями, которые могут получать доступ к определенным ресурсам в зависимости от своей роли в организации.
Смотреть статью
Контроль доступа на основе ролей является обязательным условием для любого приложения, имеющего дело с пользователями, которые могут получать доступ к определенным ресурсам в зависимости от своей роли в организации.
Смотреть статью
👍11❤1
#Вопросы_с_собеседования
❓Что такое механизм try-with-resources?
Данная конструкция, которая появилась в Java 7, позволяет использовать блок try-catch не заботясь о закрытии ресурсов, используемых в данном сегменте кода. Ресурсы объявляются в скобках сразу после
Стоит заметить, что блоки
❓Что такое механизм try-with-resources?
Данная конструкция, которая появилась в Java 7, позволяет использовать блок try-catch не заботясь о закрытии ресурсов, используемых в данном сегменте кода. Ресурсы объявляются в скобках сразу после
try, а компилятор уже сам неявно создаёт секцию finally, в которой и происходит освобождение занятых в блоке ресурсов. Под ресурсами подразумеваются сущности, реализующие интерфейс java.lang.Autocloseable.Стоит заметить, что блоки
catch и явный finally выполняются уже после того, как закрываются ресурсы в неявном finally.👍19❤3
#Вопросы_с_собеседования
❓Можно ли считать Final переменную константой?
Поскольку у нас не получится присвоить новое значение для final переменной, кажется, что это переменные константы. Но это только на первый взгляд. Если тип данных, на который ссылается переменная — immutable, то да, это константа.
А если тип данных mutable, то есть изменяемый, при помощи методов и переменных можно будет изменить значение объекта, на который ссылается final переменная, и в таком случае назвать ее константой нельзя. Так вот, на примере видно, что часть финальных переменных действительно константы, а часть — нет, и их можно изменить.
❓Можно ли считать Final переменную константой?
А если тип данных mutable, то есть изменяемый, при помощи методов и переменных можно будет изменить значение объекта, на который ссылается final переменная, и в таком случае назвать ее константой нельзя. Так вот, на примере видно, что часть финальных переменных действительно константы, а часть — нет, и их можно изменить.
👍28😱4❤3😢1
В каком случае использование TreeSet предпочтительнее использования HashSet?
Anonymous Quiz
11%
Когда необходимо часто осуществлять обращение к элементам из Set
13%
Когда необходимо часто вставлять в Set новые элементы или удалять их
66%
Когда нужно гарантировать сохранение порядка элементов коллекции
10%
Когда нужно модифицировать производительность итератора по коллекции
👍22
#Вопросы_с_собеседования
❓Как перебрать элементы LinkedList в обратном порядке, не используя медленный get(index)?
Для этого в LinkedList есть обратный итератор, который можно получить вызва метод descendingIterator().
❓Как перебрать элементы LinkedList в обратном порядке, не используя медленный get(index)?
Для этого в LinkedList есть обратный итератор, который можно получить вызва метод descendingIterator().
👍24
Основы ООП на примере Java
Константин Ботнарь, Senior Java Android Developer, расскажет об основах ООП с нуля и максимально доступно для всех начинающих разработчиков.
Часть 1 - Смотреть видео
Часть 2 - Смотреть видео
Константин Ботнарь, Senior Java Android Developer, расскажет об основах ООП с нуля и максимально доступно для всех начинающих разработчиков.
Часть 1 - Смотреть видео
Часть 2 - Смотреть видео
YouTube
Основы ООП на примере Java. Часть 1
Объектно-ориентированное программирование – это подход, при котором вся программа рассматривается как набор взаимодействующих друг с другом объектов.
Object-oriented programming (OOP) держится на 3 принципах:
- инкапсуляция
- наследование
- полиморфизм
…
Object-oriented programming (OOP) держится на 3 принципах:
- инкапсуляция
- наследование
- полиморфизм
…
👍7
Какое значение будет сохранено в строку s?
String s = "value = " + 2 + 2;
String s = "value = " + 2 + 2;
Anonymous Quiz
6%
"value = 2 + 2"
39%
"value = 22"
25%
Ошибка компиляции
20%
"value = 4"
4%
"value = 2 2"
5%
Узнать ответ
👍35🔥11
Метод ensureCapacity
Увеличивает размер внутреннего массива, чтобы в него поместилось количество элементов, переданных в minCapacity. Если массив достаточно вместителен, никакие преобразования не производятся.
Этот метод полезен, когда возникает потребность вместить большое количество элементов в несколько итераций. Например, при создании списка емкость его внутреннего массива — 10. При загрузке данных по сети они обрабатываются асинхронно порциями и результаты помещаются в массив. Если ожидается доставка 10 000 элементов, может быть неэффективно просто добавлять эти данные каждый раз: достаточно будет в начале обработки вызвать метод ensureCapaciry(10000) и записывать туда данные по мере необходимости.
Увеличивает размер внутреннего массива, чтобы в него поместилось количество элементов, переданных в minCapacity. Если массив достаточно вместителен, никакие преобразования не производятся.
Этот метод полезен, когда возникает потребность вместить большое количество элементов в несколько итераций. Например, при создании списка емкость его внутреннего массива — 10. При загрузке данных по сети они обрабатываются асинхронно порциями и результаты помещаются в массив. Если ожидается доставка 10 000 элементов, может быть неэффективно просто добавлять эти данные каждый раз: достаточно будет в начале обработки вызвать метод ensureCapaciry(10000) и записывать туда данные по мере необходимости.
👍17❤1
Использование Spring Cloud Gateway в качестве OAuth2 клиента и KeyCloak для защиты служб
В первую очередь, данная статья для тех, кто только пытаются освоить технологии Spring Cloud и KeyCloak, но уже имеют базовое представление о них.
Смотреть статью
В первую очередь, данная статья для тех, кто только пытаются освоить технологии Spring Cloud и KeyCloak, но уже имеют базовое представление о них.
Смотреть статью
👍5❤1
Оператор instanceof
Оператор java instanceof используется для проверки того, является ли объект экземпляром указанного типа (класса или подкласса или интерфейса). Во время выполнения результат оператора instanceof равен true, если значение выражения не равно null.
Это важное свойство операции instanceof, которое делает ее полезной для проверки приведения типов.
Оператор java instanceof используется для проверки того, является ли объект экземпляром указанного типа (класса или подкласса или интерфейса). Во время выполнения результат оператора instanceof равен true, если значение выражения не равно null.
Это важное свойство операции instanceof, которое делает ее полезной для проверки приведения типов.
👍14🔥2❤1😢1
#Вопросы_с_собеседования
В чем разница между struct и class?
Ответ: Практически ни в чем. В struct модификаторы доступа по умолчанию public, в class private. Также отличается и наследование по умолчанию, у struct — public, у class — private.
В чем разница между struct и class?
Ответ: Практически ни в чем. В struct модификаторы доступа по умолчанию public, в class private. Также отличается и наследование по умолчанию, у struct — public, у class — private.
👍7🤔5😱2❤1