Каков самый простой способ перевернуть ArrayList?
Ответ на картинке.
Другие способы это сделать можно найти здесь.
Ответ на картинке.
Другие способы это сделать можно найти здесь.
👍26❤1
Инкапсуляция
Инкапсуляция в Java является механизмом обёртывания данных (переменных) и кода, работающего с данными (методами), в одно целое. В инкапсуляции переменные класса будут скрыты от других классов и доступ к ним может быть получен только с помощью метода их текущего класса. По-другому это называется скрытием данных.
Для достижения инкапсуляции в Java:
☕️ Объявите переменные класса как private.
☕️ Предоставьте public к методам установки и получения (сеттеру и геттеру) для изменения и просмотра значений переменных.
Преимущества инкапсуляции:
☕️ Поля класса можно сделать только для чтения или только для записи.
☕️ Класс может иметь полный контроль над тем, что хранится в его полях.
Инкапсуляция в Java является механизмом обёртывания данных (переменных) и кода, работающего с данными (методами), в одно целое. В инкапсуляции переменные класса будут скрыты от других классов и доступ к ним может быть получен только с помощью метода их текущего класса. По-другому это называется скрытием данных.
Для достижения инкапсуляции в Java:
☕️ Объявите переменные класса как private.
☕️ Предоставьте public к методам установки и получения (сеттеру и геттеру) для изменения и просмотра значений переменных.
Преимущества инкапсуляции:
☕️ Поля класса можно сделать только для чтения или только для записи.
☕️ Класс может иметь полный контроль над тем, что хранится в его полях.
👍20❤4😢2
Что такое «локальный класс»? Каковы его особенности?
Local inner class (Локальный класс) - это вложенный класс, который может быть декларирован в любом блоке, в котором разрешается декларировать переменные. Как и простые внутренние классы (Member inner class) локальные классы имеют имена и могут использоваться многократно. Как и анонимные классы, они имеют окружающий их экземпляр только тогда, когда применяются в нестатическом контексте.
Локальные классы имеют следующие особенности:
• Видны только в пределах блока, в котором объявлены;
• Не могут быть объявлены как
• Не могут иметь внутри себя статических объявлений методов и классов, но могут иметь финальные статические поля, проинициализированные константой;
• Имеют доступ к полям и методам обрамляющего класса;
• Могут обращаться к локальным переменным и параметрам метода, если они объявлены с модификатором
Local inner class (Локальный класс) - это вложенный класс, который может быть декларирован в любом блоке, в котором разрешается декларировать переменные. Как и простые внутренние классы (Member inner class) локальные классы имеют имена и могут использоваться многократно. Как и анонимные классы, они имеют окружающий их экземпляр только тогда, когда применяются в нестатическом контексте.
Локальные классы имеют следующие особенности:
• Видны только в пределах блока, в котором объявлены;
• Не могут быть объявлены как
private/public/protected или static;• Не могут иметь внутри себя статических объявлений методов и классов, но могут иметь финальные статические поля, проинициализированные константой;
• Имеют доступ к полям и методам обрамляющего класса;
• Могут обращаться к локальным переменным и параметрам метода, если они объявлены с модификатором
final.👍15
Что выведет следующий код?
Anonymous Quiz
12%
Go-Go! Bo-Bo! Hello, World!
52%
Bo-Bo! Go-Go!
3%
Go-Go! Bo-Bo!
34%
Bo-Bo! Hello, World! Go-Go!
👍26😢9🔥2❤1
#Вопросы_с_собеседования
Какой результат выведет вызов метода foo()?
Ответ:
Разберем решение детально: С первым выводом
Какой результат выведет вызов метода foo()?
Ответ:
“HelloHello”Разберем решение детально: С первым выводом
Hello вопросов быть не должно, далее в метод bar передаем копию ссылки на строку, теперь на данную строку ссылаются две переменные: m из метода foo и m из метода bar. Так как строки в Java являются immutable, при попытке присоединить к уже существующей строке дополнительное значение World!, в методе bar произойдет создание новой строки и локальная переменная m этого метода будет ссылаться на новую строку со значением Hello World!, при этом в методе foo в результат будет выведено значение переменной m которая по прежнему ссылается на строку Hello.👍36
#Вопросы_с_собеседования
Какой параметр запуска JVM используется для контроля размера стека потока?
Какой параметр запуска JVM используется для контроля размера стека потока?
-Xss👍23
#Вопросы_с_собеседования
Какие методы класса File вы знаете?
Наиболее используемые методы класса File:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Какие методы класса File вы знаете?
Наиболее используемые методы класса File:
•
boolean createNewFile(): делает попытку создать новый файл;•
boolean delete(): делает попытку удалить каталог или файл;•
boolean mkdir(): делает попытку создать новый каталог;•
boolean renameTo(File dest): делает попытку переименовать файл или каталог;•
boolean exists(): проверяет, существует ли файл или каталог;•
String getAbsolutePath(): возвращает абсолютный путь для пути, переданного в конструктор объекта;•
String getName(): возвращает краткое имя файла или каталога;•
String getParent(): возвращает имя родительского каталога;•
boolean isDirectory(): возвращает значение true, если по указанному пути располагается каталог;•
boolean isFile(): возвращает значение true, если по указанному пути находится файл;•
boolean isHidden(): возвращает значение true, если каталог или файл являются скрытыми;•
long length(): возвращает размер файла в байтах;•
long lastModified(): возвращает время последнего изменения файла или каталога;•
String[] list(): возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге;•
File[] listFiles(): возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге.👍19😱1
#Вопросы_с_собеседования
Для 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