Ответ
Статическая типизация — это подход, при котором типы переменных и выражений проверяются на этапе компиляции, до запуска программы. Компилятор заранее знает тип каждой сущности и гарантирует типобезопасность, предотвращая операции с несовместимыми типами.
Пример в Java:
int number = 10;
String text = "Hello";
// number = text; // Ошибка компиляции: несовместимые типы
Преимущества:
- Раннее обнаружение ошибок: Многие ошибки (например, вызов несуществующего метода у объекта) отлавливаются на этапе компиляции.
- Лучшая производительность: Компилятор может выполнить оптимизации, зная точные типы данных.
- Улучшенная читаемость и поддержка: Явное указание типов делает код более понятным и облегчает работу IDE (автодополнение, навигация).
Недостатки:
- Меньшая гибкость: Требуется явно объявлять и приводить типы.
- Более многословный код: По сравнению с языками с динамической типизацией.
Противопоставление: Статическая типизация (Java, C++, C#) vs. динамическая типизация (Python, JavaScript), где проверка типов происходит во время выполнения.