Для чего используется оператор assert?
Assert (Утверждение) — это специальная конструкция, позволяющая проверять предположения о значениях произвольных данных в произвольном месте программы. Утверждение может автоматически сигнализировать об обнаружении некорректных данных, что обычно приводит к аварийному завершению программы с указанием места обнаружения некорректных данных.
Утверждения существенно упрощают локализацию ошибок в коде. Даже проверка результатов выполнения очевидного кода может оказаться полезной при последующем рефакторинге, после которого код может стать не настолько очевидным и в него может закрасться ошибка.
...
Читать дальшеGenerics
Generics - это технический термин, обозначающий набор свойств языка позволяющих определять и использовать обобщенные типы и методы. Обобщенные типы или методы отличаются от обычных тем, что имеют типизированные параметры.
Примером использования обобщенных типов может служить Java Collection Framework. Так, класс LinkedList<E> - типичный обобщенный тип. Он содержит параметр E, который представляет тип элементов, которые будут храниться в коллекции. Создание объектов обобщенных типов происходит посредством замены параметризированных типов реальными типами данных. Вместо того, чтобы просто использовать LinkedList, ничего не говоря о типе элемента в списке, предлагается использовать точное указание типа LinkedList<String>, LinkedList<Integer> и т.п.
Читать дальшеvoid и Void
В языке программирования Java ключевое слово void используется для указания того, что метод не возвращает никакого значения. Метод с возвращаемым типом void выполняет определенные действия, но не производит результат, который можно было бы использовать в вызывающей части программы.
Для void еще есть класс обёртка Void. Класс Void — это класс-заполнитель который нельзя создать и который хранит ссылку на объект Class, представляющий ключевое слово Java void.
...
Читать дальшеКак получить доступ к переопределенным методам родительского класса?
super.method();
С помощью ключевого слова super мы можем обратиться к любому члену родительского класса - методу или полю, если они не определены с модификатором private.
Читать дальшеКакими значениями по умолчанию инициализируются поля класса?
byte — (byte)0;
short — (short)0;
int — 0;
long — 0L;
float — 0f;
double — 0d;
char — \u0000;
boolean — false;
Ссылочные типы (в том числе String) — null.
Где и для чего используется модификатор abstract?
Класс, помеченный модификатором abstract, называется абстрактным классом. Такие классы могут выступать только предками для других классов. Создавать экземпляры самого абстрактного класса не разрешается. При этом наследниками абстрактного класса могут быть как другие абстрактные классы, так и классы, допускающие создание объектов.
Метод, помеченный ключевым словом abstract - абстрактный метод, т.е. метод, который не имеет реализации. Если в классе присутствует хотя бы один абстрактный метод, то весь класс должен быть объявлен абстрактным.
Использование абстрактных классов и методов позволяет описать некий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение.
Читать дальшеМожно ли объявить метод абстрактным и статическим одновременно?
Нет. В таком случае компилятор выдаст ошибку: "Illegal combination of modifiers: ‘abstract’ and ‘static’".
Модификатор abstract говорит, что метод будет реализован в другом классе, а static наоборот указывает, что этот метод будет доступен по имени класса.
Читать дальшеМетод putIfAbsent() интерфейса Map
public class PutIfAbsent {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
System.out.println("prev value - " + map.putIfAbsent("hello", null)); // prev value - null
System.out.println("prev value - " + map.putIfAbsent("hello", "world")); // prev value - null
System.out.println("prev value - " + map.putIfAbsent("hello", "мир")); // prev value - world
System.out.println(map); // {hello=world}
}
}
Если указанный ключ еще не связан со значением (или сопоставлен со значением null), он связывает его с заданным значением и возвращает значение null, в противном случае возвращается текущее значение.
...
Читать дальшеBIRT (Business Intelligence and Reporting Tools)
BIRT (Business Intelligence and Reporting Tools) - это открытая платформа, предоставляющая возможности для создания отчетов и бизнес-аналитики в приложениях, разрабатываемых на языке программирования Java. Эта платформа предоставляет инструменты для создания, развертывания и поддержки отчетов различной сложности.
Вот несколько ключевых аспектов BIRT:
...
Читать дальшеМетод retainAll()
List<String> list = new ArrayList<>();
list.add("apple");
list.add("orange");
list.add("melon");
List<String> list2 = new ArrayList<>();
list2.add("pineapple");
list2.add("orange");
list2.add("apple");
System.out.println(list.retainAll(list2)); // true
System.out.println(list); // [apple, orange]
Метод retainAll() интерфейса Collection, удаляет из коллекции все элементы, не содержащиеся в переданной коллекции. По сути оставляет в коллекции только пересекающиеся элементы из двух коллекций.
...
Читать дальше