java是动态语言还是静态语言?Java是动态语言还是静态语言?,Java是一种静态语言。Java是编译时确定的变量类型,不能在运行时更改,在类型转换中也是强制的。例如,当大规模整数类型转换为小规模整数类型时,必须进行强转换。比如int必须强制转换才能得到小规模的类型字节;所以Java是一种静态的强类型语言。
Java是动态语言还是静态语言,是强类型还是弱类型?虽然我知道,但还是不够深入。大家一起讨论一下。
图释
偶然看到一张图片,完美区分了以上问题,如下图所示:
如图,Java是一种静态类型的强类型语言。来解释一下为什么。
解释
1.静态类型语言:定义变量时带有类型声明的语言。
(1)变量的类型在编译时确定
(2)运行时不能修改变量的类型
这允许编译器确定运行时所需的内存总量。
比如C,Scala,Java,F#都是静态类型语言。
2.动态类型语言:定义变量时没有类型声明的语言。
(1)变量的类型在运行时确定
(2)变量的类型可以在操作过程中修改
比如python、Javascript、Ruby都是动态类型语言。
3.强类型定义语言
强制数据类型定义的语言。也就是说,一旦给一个变量赋了某个数据类型,如果不进行强制转换,那么它永远是该数据类型。比如你定义了一个整型变量A,程序是不可能把A当成字符串类型的。强类型定义语言是一种类型安全的语言。
4.弱类型定义语言
数据类型可以忽略的语言。与强类型定义语言相反,变量可以被赋予不同数据类型的值。强类型定义语言在速度上可能不如弱类型定义语言,但是强类型定义语言带来的严谨性可以有效避免很多错误。
总而言之:
Java是编译时确定的变量类型,运行时不能更改,类型转换也是强制的。例如,当大规模整数类型转换为小规模整数类型时,它必须是强制的。例如,int必须是强制的,才能获得小规模类型字节。所以Java是一种静态的强类型语言。