关于Java是不是静态语言的想法

之前一直觉得Java是静态语言,主要是从生成的Class文件结构来看这个问题的,但引入JIT之后貌似是可以动态生成汇编的,所以可不可以这么认为,Java是静态语言,而Java的字节码是动态语言?

动态类型语言:指在运行期间才去做数据类型检查,也就是说,用动态语言编程时,永远不用去给任何变量去指定数据类型。该语言会在你第一次给该变量赋值的时候,在内部把数据类型记录下来。ruby或者Python是典型的动态类型的语言,一些脚本语言也多少属于动态类型语言。
静态类型语言:指在编译期间就去做数据类型检查,也就是说在编码时要声明数据类型。
java就是静态语言,变量使用之前必须先声明,再使用的。java是一种语言,java的字节码是java程序编译后的产物,字节码不是语言。

java 的字节码是中间二进制码 是说明java的可移植性

java 和C# 一样 靠动态链接接库 运行的

说以说 没有动态静态语言之分。

Java很明显是静态语言嘛

Java是动态语言,Java可以操作类的字节码,修改类本身。可以实现类文件和classloader之后完全是不同的类。

Java是一种静态类型语言,因为在编译时,Java编译器会检查代码中的类型错误,并在编译时将代码转换为字节码。Java字节码是一种中间代码,它是在编译时生成的,但在运行时被动态加载和执行。因此,Java字节码可以被认为是一种动态语言,因为它可以在运行时动态地加载和执行,但Java本身仍然是一种静态类型语言。此外,JIT编译器确实可以将Java字节码动态编译为本机代码,但这并不意味着Java本身变成了动态类型语言。