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

Что такое переопределение (overriding) методов?

Переопределение методов происходит, когда child хочет изменить поведение parent класса. Если нужно, чтоб выполнилось-таки то, что есть в методе parent, можно использовать в child конструкцию вида super.methodName(), что выполнит работу parent метода, а уже потом добавить логику.

Требования, которые нужно соблюдать:
• сигнатура метода должна быть такая же;
• возвращаемое значение должно быть таким же.
👍26
Перегрузка в Java

Рассмотрим работу перегрузки методов в Java. Что, если передавать в функцию аргумент, который не вполне соответствует определенным нами аргументам по типу? На этом этапе возможны два исхода.
1. Произойдет преобразование типа, но в более высокий тип (с точки зрения диапазона) в том же семействе.
2. Произойдет преобразование типа в следующее более старшее семейство (предположим, что если нет типа данных long, доступного для типа данных int, тогда будет поиск типа данных с плавающей запятой).
👍30🔥1🎉1
Какими значениями инициализируются переменные по умолчанию?

• Числа инициализируются 0 или 0.0;
• char — \u0000;
• boolean — false;
• Объекты (в том числе String) — null.
👍34
#Вопросы_с_собеседования

Где и для чего используется модификатор abstract?

Класс, помеченный модификатором abstract, называется абстрактным классом. Такие классы могут выступать только предками для других классов. Создавать экземпляры самого абстрактного класса не разрешается. При этом наследниками абстрактного класса могут быть как другие абстрактные классы, так и классы, допускающие создание объектов.

Метод, помеченный ключевым словом abstract - абстрактный метод, т.е. метод, который не имеет реализации. Если в классе присутствует хотя бы один абстрактный метод, то весь класс должен быть объявлен абстрактным.

Использование абстрактных классов и методов позволяет описать некий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение.
👍28
Вычисление количества цифр числа

Чтобы вычислить количество цифр в числе, вместо цикла мы можем эффективно использовать log.
👍48
Быстрое умножение или деление на 2

Умножение на 2 означает сдвиг всех битов влево, а деление на 2 означает сдвиг вправо.

Например:
2 (Двоичный 10): сдвиг влево(умножение) дает 4 (Двоичный 100) и вправо(деление) дает 1 (Двоичный 1).
👍79
Проверка на простое число

Java имеет встроенный метод isProbablePrime() в классе BigInteger . Он возвращает true, если этот BigInteger, вероятно, является простым (с некоторой уверенностью) и false, если он определенно составной.
👍18😱8
#Вопросы_с_собеседования

Какие преимущества есть у многопоточности?

1) Многопоточность позволяет приложению / программе всегда реагировать на ввод, даже если она уже выполняется с некоторыми фоновыми задачами;
2) Многопоточность позволяет быстрее выполнять задачи, поскольку потоки выполняются независимо;
3) Многопоточность обеспечивает лучшее использование кэш-памяти, поскольку потоки разделяют общие ресурсы памяти;
4) Многопоточность уменьшает количество требуемого сервера, поскольку один сервер может одновременно выполнять несколько потоков.
👍34🔥3
#Вопросы_с_собеседования

Что имеется в виду под 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