У нас есть Jython
, JRuby
, Groovy
, которые динамически типизированы и работают поверх JVM
. Я понимаю, что эти языки компилируются в байт-код.
Другие языки, такие как Scala
, поддерживают вывод типов, и ясно, что компилятор выводит тип за нас.
Но Java
— это статический язык, и он компилируется в байт-код. Значит ли это, что байт-код поддерживает динамическую типизацию?
Например,. В Java
нам нужно объявить тип переменной во время компиляции, и мы никогда не сможем его изменить. Но в случае Python
нам не нужно объявлять тип, но мы можем присвоить любой тип значения одной и той же переменной во время выполнения.
Как динамическая типизация работает со статическим языком?