Java Learning
19.7K subscribers
1.58K photos
1 video
3 files
955 links
№ 5079899194

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

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

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

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
#Вопросы_с_собеседования

Что имеется в виду под Collections в Java?

Collection — это фреймворк, который создан для сохранения и манипуляции объектами.

Используется для выполнения следующих операций:
• поиск;
• сортировка;
• манипуляция;
• добавление;
• удаление.

Все классы и интерфейсы для Collection фреймворка находятся в java.util пакете.
👍40👎8
JSON, сериализация

JSON – невероятно удобный и полезный синтаксис для хранения и обмена данными. Java полностью поддерживает его.

В данном примере кода рассмотрим пример сериализации данных.
👍331👎1
#Вопросы_с_собеседования

Что такое volatile переменная?

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

При помощи ключевого слова volatile можно гарантировать, что переменная будет потокобезопасна и будет храниться в общей памяти, и потоки не будут ее брать себе в свой кеш.

Как это выглядит?
private volatile AtomicInteger count;
Просто добавляем к переменной volatile.

Но это не говорит о полной потокобезопасности… Ведь операции могут быть не атомарны над переменной. Но можно использовать Atomic классы, которые делают операцию атомарно, то есть за одно выполнение процессором.

Таких классов можно много найти в пакете java.util.concurrent.atomic.
👍24
🔥18😱9🤩6👍52😁1
#Вопросы_с_собеседования

Что такое модификаторы доступа?

Модификаторы доступа — это инструмент, при помощи которого можно настроить доступ к классам, методам и переменным.

Бывают следующие модификаторы, упорядоченные в порядке повышения доступа:
1) private — используется для методов, полей и конструкторов. Уровень доступа — только класс, внутри которого он объявлен.
2) package-private(default) — может использоваться для классов. Доступ только в конкретном пакете (package), в котором объявлен класс, метод, переменная, конструктор.
3) protected — такой же доступ, как и package-private + для тех классов, которые наследуются от класса с модификатором protected.
4) public — используется и для классов. Полноценный доступ во всем приложении.
👍312
Внутренние классы (нестатические вложенные классы)

Внутренние классы — это механизм безопасности в Java. Создать такой класс довольно просто — нужно написать класс внутри класса. Внутренний класс может быть закрытым (private), и после того, как Вы объявляете внутренний класс закрытым, он не может быть доступен из объекта вне класса.

На картинке Outer_Demo – внешний класс, Inner_Demo – внутренний класс, display_Inner() – метод, внутри которого мы создаем внутренний класс, и этот метод вызывается из основного метода.
👍31👎2
Что выведет код сверху?
Anonymous Quiz
9%
-130 aJva
7%
-130 aJvJ
30%
-130 JJvJ
40%
126 JJvJ
7%
126 aJvJ
8%
126 aJva
👍50😱224
#Вопросы_с_собеседования

Может ли объект получить доступ к члену класса, объявленному как private? Если да, то каким образом?

• Внутри класса доступ к приватной переменной открыт без ограничений;
• Вложенный класс имеет полный доступ ко всем (в том числе и приватным) членам содержащего его класса;
• Доступ к приватным переменным извне может быть организован через отличные от приватных методов, которые предоставлены разработчиком класса. Например: getX() и setX().
• Через механизм рефлексии (Reflection API) (см картинку).
👍34😱32
#Вопросы_с_собеседования

Можно ли объявить метод абстрактным и статическим одновременно?

Нет. В таком случае компилятор выдаст ошибку: "Illegal combination of modifiers: ‘abstract’ and ‘static’". Модификатор abstract говорит, что метод будет реализован в другом классе, а static наоборот указывает, что этот метод будет доступен по имени класса.
👍363😱3
👍2
Что выведет код сверху?
Anonymous Quiz
27%
true2
44%
false2
3%
true
16%
false
9%
2
1%
3
😱26👍16👎2
#Вопросы_с_собеседования

Почему нельзя объявить метод интерфейса с модификатором final?

В случае интерфейсов указание модификатора final бессмысленно, т.к. все методы интерфейсов неявно объявляются как абстрактные, т.е. их невозможно выполнить, не реализовав где-то еще, а этого нельзя будет сделать, если у метода идентификатор final.
👍241
#Вопросы_с_собеседования

Какие классы и интерфейсы доступны в Collection фреймворке?

Интерфейсы:
• Collection;
• List;
• Set;
• Map;
• Sorted Set;
• Sorted Map;
• Queue.
Классы:
• Lists(ArrayList, LinkedList, Vector(deprecated))
• Sets(HashSet, LinkedHashSet, TreeSet)
• Maps(HashMap, TreeMap, HashTable (deprecated), LinkedHashMap)
• Queue(Priority Queue)
👍43
👍1