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
#Вопросы_с_собеседования

Что такое «анонимные классы»? Где они применяются?

Это вложенный локальный класс без имени, который разрешено декларировать в любом месте обрамляющего класса, разрешающем размещение выражений. Создание экземпляра анонимного класса происходит одновременно с его объявлением. В зависимости от местоположения анонимный класс ведет себя как статический либо как нестатический вложенный класс - в нестатическом контексте появляется окружающий его экземпляр.

Анонимные классы имеют несколько ограничений:

• Их использование разрешено только в одном месте программы - месте его создания;
• Применение возможно только в том случае, если после порождения экземпляра нет необходимости на него ссылаться;
• Реализует лишь методы своего интерфейса или суперкласса, т.е. не может объявлять каких-либо новых методов, так как для доступа к ним нет поименованного типа.

Анонимные классы обычно применяются для:

• создания объекта функции (function object), например, реализация интерфейса Comparator;
• создания объекта процесса (process object), такого как экземпляры классов Thread, Runnable и подобных;
• в статическом методе генерации;
• инициализации открытого статического поля final, которое соответствует сложному перечислению типов, когда для каждого экземпляра в перечислении требуется отдельный подкласс.
👍9
Метод delete()

Удаляет символы в подстроке данной строки буфера (StringBuffer). Подстрока начинается с указанного начального индекса и распространяется до символа конечного индекса, или до конца StringBuffer, если такого символа не существует.

Другими словами метод позволяет удалить символы из строки, начиная и заканчивая указанными индексами.

Если start (начальный индекс) равен end (конечный индекс), то изменения не производятся.

Параметры:
• start — начальный индекс, включительно;
• end — конечный индекс, не включая.
👍18
Разбираемся с GraalVM, AOT и JIT

Если вы хотите разобраться, что такое GraalVM, как он работает, и в чем различия между Just-In-Time (JIT) компиляцией и Ahead-Of-Time (AOT) компиляцией, то это руководство — именно то, что вы искали.

Смотреть статью
👍6
#Вопросы_с_собеседования

Как разбить строку на подстроки по заданному разделителю?

Мы можем использовать метод split(String regex) для разделения строки на массив символов, используя в качестве разделителя регулярное выражение.

Метод split(String regex, int numOfStrings) является перегруженным методом для разделения строки на заданное количество строк. Мы можем использовать обратную черту для использования специальных символов регулярных выражений в качестве обычных символов.
🔥3👍1
1😁1
👍12
Каким образом из вложенного класса получить доступ к полю внешнего класса?

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

Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например: Outer.this.field.
👍7
😱6👍4😢3
😢9👍8
Оцените количество памяти на хранение одного примитива типа byte в ArrayList?

ArrayList
основан на массиве, для примитивных типов данных осуществляется автоматическая упаковка значения, поэтому 16 байт тратится на хранение упакованного объекта и 4 байта (8 для x64) - на хранение ссылки на этот объект в самой структуре данных. Таким образом, в x32 JVM 4 байта используются на хранение одного элемента и 16 байт - на хранение упакованного объекта типа Byte. Для x64 - 8 байт и 24 байта соответственно.
👍9
Собеседование по Java. Разбор 1606 вопросов и ответов

Смотреть статью
👍19😱4
Блок кода создает поток используя Runnable. Какой из следующих классов может быть использован, чтобы предыдущий код откомпилировался?
Anonymous Quiz
20%
public class MyRunnable implements Runnable{void run(){}}
16%
public class MyRunnable implements Runnable{public void start(){}}
50%
public class MyRunnable implements Runnable{public void run(){}}
11%
public class MyRunnable extends Runnable{public void run(){}}
3%
public class MyRunnable extends Object{public void run(){}}
👍17
⚡️Шпаргалка по Maven

Maven — один из самых популярных и удобных инструментов для управления и сборки проектов на Java. Сохраняй и делись с друзьями!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
#Вопросы_с_собеседования

Как устроен HashMap?

HashMap состоит из «корзин» (bucket). С технической точки зрения «корзины» — это элементы массива, которые хранят ссылки на списки элементов. При добавлении новой пары «ключ-значение», вычисляет хэш-код ключа, на основании которого вычисляется номер корзины (номер ячейки массива), в которую попадет новый элемент. Если корзина пустая, то в нее сохраняется ссылка на вновь добавляемый элемент, если же там уже есть элемент, то происходит последовательный переход по ссылкам между элементами в цепочке, в поисках последнего элемента, от которого и ставится ссылка на вновь добавленный элемент. Если в списке был найден элемент с таким же ключом, то он заменяется.
👍17
Программа по сравнению элементов массива и букв строки

Для сравнения элементов массива и букв строки в Java можно использовать следующую программу.

Программа создает массив из символов {'a', 'c', 'd', 'f', 'g'} и строку "abcdefg". В цикле происходит сравнение элементов массива и букв строки с помощью метода charAt(). Если элемент массива равен букве строки, то выводится сообщение об этом.

Затем массив сортируется по возрастанию методом sort() из класса Arrays. Отсортированный массив выводится на экран.
👍92
Получаем наиболее распространенный элемент в списке

Сделать это можно с помощью следующего фрагмента кода, подробнее о котором можно почитать здесь.
👍174
Как между собой связаны Iterable, Iterator и «for-each»?

Классы, реализующие интерфейс Iterable, могут применяться в конструкции for-each, которая использует Iterator.
👍11
Узнаем самый средний элемент коллекции

В этом примере используется List numbers, который содержит числа. С помощью Collections.sort() список чисел сортируется в порядке возрастания. Затем вычисляется индекс середины списка. Если размер списка четный, то найдутся два средних элемента, их среднее значение вычисляется и выводится на экран. Если размер списка нечетный, то выводится только один средний элемент.

Пример вывода (для списка чисел [1, 2, 3, 4, 5, 6, 7, 8]):
Средние элементы: 4, 5
Среднее значение: 4.5
👍131