Java Learning
18.7K subscribers
1.62K photos
1 video
3 files
998 links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.iss.one/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
Каков самый простой способ перевернуть ArrayList?

Ответ на картинке.

Другие способы это сделать можно найти здесь.
👍261
Инкапсуляция

Инкапсуляция в Java является механизмом обёртывания данных (переменных) и кода, работающего с данными (методами), в одно целое. В инкапсуляции переменные класса будут скрыты от других классов и доступ к ним может быть получен только с помощью метода их текущего класса. По-другому это называется скрытием данных.

Для достижения инкапсуляции в Java:
☕️ Объявите переменные класса как private.
☕️ Предоставьте public к методам установки и получения (сеттеру и геттеру) для изменения и просмотра значений переменных.

Преимущества инкапсуляции:
☕️ Поля класса можно сделать только для чтения или только для записи.
☕️ Класс может иметь полный контроль над тем, что хранится в его полях.
👍204😢2
Переворот LinkedList

Еще один способ как это сделать вы можете найти здесь.
👍181
Что такое «локальный класс»? Каковы его особенности?

Local inner class
(Локальный класс) - это вложенный класс, который может быть декларирован в любом блоке, в котором разрешается декларировать переменные. Как и простые внутренние классы (Member inner class) локальные классы имеют имена и могут использоваться многократно. Как и анонимные классы, они имеют окружающий их экземпляр только тогда, когда применяются в нестатическом контексте.

Локальные классы имеют следующие особенности:

• Видны только в пределах блока, в котором объявлены;
• Не могут быть объявлены как private/public/protected или static;
• Не могут иметь внутри себя статических объявлений методов и классов, но могут иметь финальные статические поля, проинициализированные константой;
• Имеют доступ к полям и методам обрамляющего класса;
• Могут обращаться к локальным переменным и параметрам метода, если они объявлены с модификатором final.
👍15
Метод toCharArray()

Возвращает вновь распределённый символьный массив, длина которого равна длине данной строки и содержимое, которое инициализируются, содержит последовательность символов, представленных данной строкой.
👍115
🤔29
👍26😢9🔥21
#Вопросы_с_собеседования

Какой результат выведет вызов метода foo()?

Ответ:
“HelloHello”

Разберем решение детально: С первым выводом Hello вопросов быть не должно, далее в метод bar передаем копию ссылки на строку, теперь на данную строку ссылаются две переменные: m из метода foo и m из метода bar. Так как строки в Java являются immutable, при попытке присоединить к уже существующей строке дополнительное значение World!, в методе bar произойдет создание новой строки и локальная переменная m этого метода будет ссылаться на новую строку со значением Hello World!, при этом в методе foo в результат будет выведено значение переменной m которая по прежнему ссылается на строку Hello.
👍36
#Вопросы_с_собеседования

Какой параметр запуска JVM используется для контроля размера стека потока?

-Xss
👍23
#Вопросы_с_собеседования

Какие методы класса 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
Как получить текущее время с точностью до миллисекунд используя Date Time API?

Ответ приведен на картинке.
👍15😱3
#Вопросы_с_собеседования

Для 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 соответственно.
👍19🔥31
#Вопросы_с_собеседования

Чем отличаются конструктор по-умолчанию, конструктор копирования и конструктор с параметрами?

У конструктора по умолчанию отсутствуют какие-либо аргументы. Конструктор копирования принимает в качестве аргумента уже существующий объект класса для последующего создания его клона. Конструктор с параметрами имеет в своей сигнатуре аргументы (обычно необходимые для инициализации полей класса).
👍182
#Вопросы_с_собеседования

Какие классы позволяют ускорить чтение/запись за счет использования буфера?

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 представлен на картинке.

Теперь, для реализации этого метода необходимо расширить абстрактный класс и этот метод переопределить.
👍22
Узнаем размер файла с помощью Java

Здесь создается объект класса File, указывающий на файл, размер которого нужно узнать.

Затем вызывается метод length(), который возвращает размер файла в байтах. Результат выводится на консоль с помощью метода println().
👍20
Шаблон Котлин-приложения

Смотреть статью
👍2
Узнаем версию Java

В Java можно узнать версию текущего экземпляра JVM (Java Virtual Machine) с помощью функции System.getProperty("java.version");

Этот код вернет текущую версию Java, установленную на компьютере.
👍251🔥1
Реализация авторизации на основе ролей в Spring Boot с помощью Keycloak

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

Смотреть статью
👍111