Ответ
Статическая (строгая) типизация означает, что тип переменной известен и проверяется на этапе компиляции. Тип переменной не может быть изменен после объявления.
Пример на Java:
int number = 10; // Тип `int` объявлен явно
number = "текст"; // Ошибка компиляции: несовместимые типы
Динамическая типизация означает, что тип переменной определяется во время выполнения и может меняться в процессе работы программы.
Пример на Python:
value = 10 # Тип `int`
value = "текст" # Теперь тип `str`. Ошибки нет.
Ключевые различия:
- Проверка типов: Статическая — во время компиляции; динамическая — во время выполнения (runtime).
- Безопасность: Статическая типизация предотвращает целый класс ошибок до запуска программы, повышая надежность.
- Производительность: Статическая типизация позволяет компилятору выполнять оптимизации, что часто приводит к более быстрому коду.
- Гибкость: Динамическая типизация позволяет быстрее писать и изменять код, но увеличивает риск runtime-ошибок.