Java — строго типизированный язык.

Каждая переменная имеет тип, каждое выражение имеет тип, и каждый тип строго определен.

Все присваивания проверяются на совместимость типов.

Нет автоматического приведения или преобразования конфликтующих типов.

Компилятор Java проверяет все выражения и параметры, чтобы убедиться, что типы совместимы.