Какими значениями инициализируются переменные по умолчанию?
• Числа инициализируются 0 или 0.0;
• char — \u0000;
• boolean — false;
• Объекты (в том числе String) — null.
• Числа инициализируются 0 или 0.0;
• char — \u0000;
• boolean — false;
• Объекты (в том числе String) — null.
👍34
#Вопросы_с_собеседования
Где и для чего используется модификатор abstract?
Класс, помеченный модификатором abstract, называется абстрактным классом. Такие классы могут выступать только предками для других классов. Создавать экземпляры самого абстрактного класса не разрешается. При этом наследниками абстрактного класса могут быть как другие абстрактные классы, так и классы, допускающие создание объектов.
Метод, помеченный ключевым словом abstract - абстрактный метод, т.е. метод, который не имеет реализации. Если в классе присутствует хотя бы один абстрактный метод, то весь класс должен быть объявлен абстрактным.
Использование абстрактных классов и методов позволяет описать некий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение.
Где и для чего используется модификатор abstract?
Класс, помеченный модификатором abstract, называется абстрактным классом. Такие классы могут выступать только предками для других классов. Создавать экземпляры самого абстрактного класса не разрешается. При этом наследниками абстрактного класса могут быть как другие абстрактные классы, так и классы, допускающие создание объектов.
Метод, помеченный ключевым словом abstract - абстрактный метод, т.е. метод, который не имеет реализации. Если в классе присутствует хотя бы один абстрактный метод, то весь класс должен быть объявлен абстрактным.
Использование абстрактных классов и методов позволяет описать некий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение.
👍28
#Вопросы_с_собеседования
Какие преимущества есть у многопоточности?
1) Многопоточность позволяет приложению / программе всегда реагировать на ввод, даже если она уже выполняется с некоторыми фоновыми задачами;
2) Многопоточность позволяет быстрее выполнять задачи, поскольку потоки выполняются независимо;
3) Многопоточность обеспечивает лучшее использование кэш-памяти, поскольку потоки разделяют общие ресурсы памяти;
4) Многопоточность уменьшает количество требуемого сервера, поскольку один сервер может одновременно выполнять несколько потоков.
Какие преимущества есть у многопоточности?
1) Многопоточность позволяет приложению / программе всегда реагировать на ввод, даже если она уже выполняется с некоторыми фоновыми задачами;
2) Многопоточность позволяет быстрее выполнять задачи, поскольку потоки выполняются независимо;
3) Многопоточность обеспечивает лучшее использование кэш-памяти, поскольку потоки разделяют общие ресурсы памяти;
4) Многопоточность уменьшает количество требуемого сервера, поскольку один сервер может одновременно выполнять несколько потоков.
👍34🔥3
#Вопросы_с_собеседования
Что имеется в виду под Collections в Java?
Collection — это фреймворк, который создан для сохранения и манипуляции объектами.
Используется для выполнения следующих операций:
• поиск;
• сортировка;
• манипуляция;
• добавление;
• удаление.
Все классы и интерфейсы для Collection фреймворка находятся в java.util пакете.
Что имеется в виду под Collections в Java?
Collection — это фреймворк, который создан для сохранения и манипуляции объектами.
Используется для выполнения следующих операций:
• поиск;
• сортировка;
• манипуляция;
• добавление;
• удаление.
Все классы и интерфейсы для Collection фреймворка находятся в java.util пакете.
👍40👎8
#Вопросы_с_собеседования
Что такое volatile переменная?
Ключевое слово volatile используется в многопоточном программировании для обеспечения безопасности потока, поскольку модификация одной изменяемой переменной видна всем другим потокам, поэтому одна переменная может использоваться одним потоком за раз.
При помощи ключевого слова volatile можно гарантировать, что переменная будет потокобезопасна и будет храниться в общей памяти, и потоки не будут ее брать себе в свой кеш.
Как это выглядит?
private volatile AtomicInteger count;
Просто добавляем к переменной volatile.
Но это не говорит о полной потокобезопасности… Ведь операции могут быть не атомарны над переменной. Но можно использовать Atomic классы, которые делают операцию атомарно, то есть за одно выполнение процессором.
Таких классов можно много найти в пакете java.util.concurrent.atomic.
Что такое volatile переменная?
Ключевое слово volatile используется в многопоточном программировании для обеспечения безопасности потока, поскольку модификация одной изменяемой переменной видна всем другим потокам, поэтому одна переменная может использоваться одним потоком за раз.
При помощи ключевого слова volatile можно гарантировать, что переменная будет потокобезопасна и будет храниться в общей памяти, и потоки не будут ее брать себе в свой кеш.
Как это выглядит?
private volatile AtomicInteger count;
Просто добавляем к переменной volatile.
Но это не говорит о полной потокобезопасности… Ведь операции могут быть не атомарны над переменной. Но можно использовать Atomic классы, которые делают операцию атомарно, то есть за одно выполнение процессором.
Таких классов можно много найти в пакете java.util.concurrent.atomic.
👍24
Какой результат выведет следующая программа?
Anonymous Quiz
12%
Программа уйдет в бесконечный цикл
9%
Hello
36%
Программа не скомпилируется
43%
Hello world
🔥18😱9🤩6👍5❤2😁1
#Вопросы_с_собеседования
Что такое модификаторы доступа?
Модификаторы доступа — это инструмент, при помощи которого можно настроить доступ к классам, методам и переменным.
Бывают следующие модификаторы, упорядоченные в порядке повышения доступа:
1) private — используется для методов, полей и конструкторов. Уровень доступа — только класс, внутри которого он объявлен.
2) package-private(default) — может использоваться для классов. Доступ только в конкретном пакете (package), в котором объявлен класс, метод, переменная, конструктор.
3) protected — такой же доступ, как и package-private + для тех классов, которые наследуются от класса с модификатором protected.
4) public — используется и для классов. Полноценный доступ во всем приложении.
Что такое модификаторы доступа?
Модификаторы доступа — это инструмент, при помощи которого можно настроить доступ к классам, методам и переменным.
Бывают следующие модификаторы, упорядоченные в порядке повышения доступа:
1) private — используется для методов, полей и конструкторов. Уровень доступа — только класс, внутри которого он объявлен.
2) package-private(default) — может использоваться для классов. Доступ только в конкретном пакете (package), в котором объявлен класс, метод, переменная, конструктор.
3) protected — такой же доступ, как и package-private + для тех классов, которые наследуются от класса с модификатором protected.
4) public — используется и для классов. Полноценный доступ во всем приложении.
👍31❤2
Внутренние классы (нестатические вложенные классы)
Внутренние классы — это механизм безопасности в Java. Создать такой класс довольно просто — нужно написать класс внутри класса. Внутренний класс может быть закрытым (private), и после того, как Вы объявляете внутренний класс закрытым, он не может быть доступен из объекта вне класса.
На картинке Outer_Demo – внешний класс, Inner_Demo – внутренний класс, display_Inner() – метод, внутри которого мы создаем внутренний класс, и этот метод вызывается из основного метода.
Внутренние классы — это механизм безопасности в 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😱22❤4
#Вопросы_с_собеседования
Может ли объект получить доступ к члену класса, объявленному как private? Если да, то каким образом?
• Внутри класса доступ к приватной переменной открыт без ограничений;
• Вложенный класс имеет полный доступ ко всем (в том числе и приватным) членам содержащего его класса;
• Доступ к приватным переменным извне может быть организован через отличные от приватных методов, которые предоставлены разработчиком класса. Например: getX() и setX().
• Через механизм рефлексии (Reflection API) (см картинку).
Может ли объект получить доступ к члену класса, объявленному как private? Если да, то каким образом?
• Внутри класса доступ к приватной переменной открыт без ограничений;
• Вложенный класс имеет полный доступ ко всем (в том числе и приватным) членам содержащего его класса;
• Доступ к приватным переменным извне может быть организован через отличные от приватных методов, которые предоставлены разработчиком класса. Например: getX() и setX().
• Через механизм рефлексии (Reflection API) (см картинку).
👍34😱3❤2
#Вопросы_с_собеседования
Можно ли объявить метод абстрактным и статическим одновременно?
Нет. В таком случае компилятор выдаст ошибку: "Illegal combination of modifiers: ‘abstract’ and ‘static’". Модификатор abstract говорит, что метод будет реализован в другом классе, а static наоборот указывает, что этот метод будет доступен по имени класса.
Можно ли объявить метод абстрактным и статическим одновременно?
Нет. В таком случае компилятор выдаст ошибку: "Illegal combination of modifiers: ‘abstract’ and ‘static’". Модификатор abstract говорит, что метод будет реализован в другом классе, а static наоборот указывает, что этот метод будет доступен по имени класса.
👍36❤3😱3
😱26👍16👎2