Java Guru 🤓 – Telegram
Java Guru 🤓
13.1K subscribers
917 photos
15 videos
792 links
Канал с вопросами и задачами с собеседований!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrSQZ

Мы на бирже: telega.in/channels/javatasks/card?r=lcDuijdm
Download Telegram
Heap имеет структуру пирамиды. Это означает что самый большой элемент всегда будет занимать самую высокую позицию. Иллюстрация приведена на рисунке.

Вставляемый новый узел помещается в конец пирамиды. Но согласно условия что дочерний узел не может быть больше родительского, идет проверка с родительским узлом. Если новый элемент меньше - операция вставки закончена, если нет - новый элемент меняется местами с родительским, до момента пока родительского узла не останется(либо родительский элемент не будет больше дочернего).

Благодаря своей пирамидной структуре(если угодно - структура бинарного дерева) вставка/удаление элемента происходит за время O(logN).
👍29🤩3🔥21👏1
Что выведет данный код?
👍13🤬1
Что выведет данный код?
Anonymous Quiz
46%
21435
27%
212435
6%
122345
12%
12435
9%
Ошибка компиляции
👍20🌭3🤬2
Что такое packege access level?

В Java существует 4 модификатора доступа: 3 из них явных и один неявный. Private/public/protected - явные модификаторы, это означает что каждый из них нужно объявлять в коде. Так же существует четвёртый модификатор доступа - packege access level. Его необязательно объявлять в коде, данный модификатор означает что поле/метод будут доступны на уровне пакета или наследникам данного класса.
👍21🤬3
Что означает понятие JIT?

Аббревиатура JIT означает Just-In-Time. В JRE существует подобный компилятор, который компилирует байт-код в собственный машинный код прямо во время выполнения программы. Таким образом повышается производительность Java-программ. В свою очередь JIT компилятор повышает непредсказуемость работы программы и повышает сложность отслеживания причины багов и ошибок. Так же такому компилятору необходимо гораздо больше памяти в сравнении с интерпретируемой компиляцией.
👍231🤬1
Каким будет результат работы программы?
👍17
Каким будет результат работы программы?
Anonymous Quiz
28%
777
33%
666
11%
777 666
26%
ошибка компиляция
3%
ошибка времени выполнения
👍14
Для чего нужна Double Brace инициализация в Java?

Double Brace инициализация
используется в Java для наполнения коллекций(set, list, map, queue) одновременно с их объявлением. В случае если вам необходимо создать unmodifiable коллекцию, без Double Brace инициализации нам будет необходимо создать список, положить туда необходимое кол-во элементов и создать из этого списка unmodifiableList используя Collections класс. Используя Double Brace инициализацию мы имеем возможность "положить" в unmodifiableList все необходимые элементы сразу при объявлении.
👍20🐳2🔥1
Какая первая строка в этой программе станет причиной ошибки компиляции?
👍7
Какая первая строка в этой программе станет причиной ошибки компиляции?
Anonymous Quiz
9%
6
5%
7
23%
9
37%
10
8%
12
6%
13
12%
В этом коде нет ошибок
👍16
Что такое WeakReference и SoftReference в Java? Какая разница между этими понятиями?

WeakReference
и SoftReference упоминается в контексте сборки мусора.

SoftReference используется при кешировании внутри системы и будет удален сборщиком мусора в случае если осталось мало памяти, а на объект существуют только ссылки SoftReference. Это критично при кэшировании, так как наш сборщик мусора самостоятельно освободит нам память в критичной ситуации, но до этого момента не будет "трогать" эти объекты.

WeakReference - в случае если на объект ссылаются только через weak-ссылки, то объект будет удален сразу при обходе сборщиком мусора.

Это критические отличия между этими двумя типами ссылок.
👍35👏2
Для чего используют слово static в Java? Возможно ли переопределить статический метод?

Ключевым словом staticв Java можно пометить поле, метод, блок или внутренний класс и это будет означать что этот субъект принадлежит классу, а не объекту. Иными словами - при изменении субъекта, он одинаково изменится для всех объектов данного класса.

Мы можем перегрузить статический метод, но мы не можем его переопределить, так как он принадлежит классу.
👍51
Вам нравится читать контент на этом канале?

Возможно, вы задумывались о том, чтобы купить на нем интеграцию?

Следуйте 3 простым шагам, чтобы сделать это:

1) Регистрируйтесь по ссылке: https://telega.in/c/javatasks
2) Пополняйтесь удобным способом
3) Размещайте публикацию

Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
Что будет выведено на экран?
👍13🍌10🥱1
👍22🎉3🏆1
В чем различия ArrayList и LinkedList?

В первую очередь в самой структуре - ArrayList "под коробкой" использует массив, следовательно, каждый раз при вставке элемента будет создаваться новый массив размера n+1(где n размер массива до вставки). Из-за этого для вставки элемента в середину списка потребуется сначала "освободить" место под новый элемент, "сдвинув" все элементы после места вставки влево. Вставка в конец массива происходит за константное время. Доступ же к элементам происходит быстрее благодаря индексу элемента.

В свою очередь в LinkedList каждый элемент "знает" своих соседей. Следовательно, что бы вставить новый элемент(удалить старый) в середину все что нам надо это записать ссылки на соседей и перезаписать у соседей. Однако для доступа по индексу необходимо "перебрать" все элементы и найти нужный индекс. Так же при использовании LinkedList следует помнить про затраты памяти на хранение связи между элементами.
👍43🤨3🤔2🤣2🌚1
Каким будет результат компиляции и выполнения данного кода?
👍15🔥5
Каким будет результат компиляции и выполнения данного кода?
Anonymous Quiz
41%
3,3
3%
0,0
4%
0,3
18%
3,0
8%
Ошибка выполнения
26%
Ошибка компиляции
👍26🔥4🎉2
В чем особенность Map в сравнении с Set и List?

Map не является наследником интерфейсов Collection или Iterable. Так же Map хранит данные в виде ключ-значение. Соответственно доступ к элементам происходит не по индексу, а по уникальному ключу. При добавлении нового элемента всегда нужно создавать для него уникальный ключ(например при использовании HashMap и не правильном заполнении ключа могут возникать коллизии - ситуации когда по ключу доступен совершенно не тот элемент который нужен).
👍32
В чем отличие между HashMap и Hashtable?

Hashtable потокобезопасна и синхронизирована, но из-за этого теряется производительность. Кроме того Вы не сможете записать парой ключ-значение null-null, в HashMap это доступно. У HashMap есть альтернатива - ConcurrentHashMap которая является потокобезопасной. В целом Hashtable более старый класс и появился в Java до введения Collection framework в целом и HashMap в частности.
👍31
Какие существуют литералы?

Литерал – последовательность символов, обозначающая значение примитивного типа (или строки).

Целочисленные (Integer). Возможные форматы: 2019, 1__000_000 (с Java 7), 10048L (можно l, но будет путаться с 1), 0xfd12aa, 0b1011101, 07654321.

С плавающей точкой (floating-point). Возможные форматы: 123.4, 56.7e8, .07, 42F, 1.4D (избыточно, по умолчанию и так double).

Символы и строки. Символ (char) – в одинарных кавычках: 'R'. Спецсимволы пишутся с бэкслешем: '\n'. Любой символ можно представлять в виде escape-последовательности: '\u00F1'. Строковый литерал – последовательность символов в двойных кавычках: "Blabla". Для символов строки действуют те же правила.

Логические (boolean). true и false.

Специальный литерал null.

Все нюансы описаны в
официальной документации.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤‍🔥1