Что такое статическая типизация в программировании?

«Что такое статическая типизация в программировании?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Пример в Java:

int number = 10;
String text = "Hello";
// number = text; // Ошибка компиляции: несовместимые типы

Преимущества:

  • Раннее обнаружение ошибок: Многие ошибки (например, вызов несуществующего метода у объекта) отлавливаются на этапе компиляции.
  • Лучшая производительность: Компилятор может выполнить оптимизации, зная точные типы данных.
  • Улучшенная читаемость и поддержка: Явное указание типов делает код более понятным и облегчает работу IDE (автодополнение, навигация).

Недостатки:

  • Меньшая гибкость: Требуется явно объявлять и приводить типы.
  • Более многословный код: По сравнению с языками с динамической типизацией.

Противопоставление: Статическая типизация (Java, C++, C#) vs. динамическая типизация (Python, JavaScript), где проверка типов происходит во время выполнения.