java是动态语言还是静态语言?Java是动态语言还是静态语言?,Java是一种静态语言。Java是编译时确定的变量类型,不能在运行时更改,在类型转换中也是强制的。例如,当大规模整数类型转换为小规模整数类型时,必须进行强转换。比如int必须强制转换才能得到小规模的类型字节;所以Java是一种静态的强类型语言。

java 与 区别 导入 静态导入 java是静态编译吗_java 是静态语言还是动态

Java是动态语言还是静态语言,是强类型还是弱类型?虽然我知道,但还是不够深入。大家一起讨论一下。

图释

偶然看到一张图片,完美区分了以上问题,如下图所示:

java 与 区别 导入 静态导入 java是静态编译吗_强类型_02

如图,Java是一种静态类型的强类型语言。来解释一下为什么。

解释

1.静态类型语言:定义变量时带有类型声明的语言。

(1)变量的类型在编译时确定

(2)运行时不能修改变量的类型

这允许编译器确定运行时所需的内存总量。

比如C,Scala,Java,F#都是静态类型语言。

2.动态类型语言:定义变量时没有类型声明的语言。

(1)变量的类型在运行时确定

(2)变量的类型可以在操作过程中修改

比如python、Javascript、Ruby都是动态类型语言。

3.强类型定义语言

强制数据类型定义的语言。也就是说,一旦给一个变量赋了某个数据类型,如果不进行强制转换,那么它永远是该数据类型。比如你定义了一个整型变量A,程序是不可能把A当成字符串类型的。强类型定义语言是一种类型安全的语言。

4.弱类型定义语言

数据类型可以忽略的语言。与强类型定义语言相反,变量可以被赋予不同数据类型的值。强类型定义语言在速度上可能不如弱类型定义语言,但是强类型定义语言带来的严谨性可以有效避免很多错误。

总而言之:

Java是编译时确定的变量类型,运行时不能更改,类型转换也是强制的。例如,当大规模整数类型转换为小规模整数类型时,它必须是强制的。例如,int必须是强制的,才能获得小规模类型字节。所以Java是一种静态的强类型语言。