编译型:通过编译器编译成可执行文件
或者通过编译器生成多个目标文件,一个模块会对应一个目标文件,最后由链接器生成可执行文件、
一次性将所有代码转换成机器码
速度快
C++
解释型:程序运行前一刻,还只有源程序没有可执行程序,当运行到某一行时,由一个解释器的外壳将该内容转换为二进制代码
可移植性
Js,Python
C#,Java是介于两者之间的语言,将语言编译成基于虚拟运行平台(JVM,.Net)的目标代码,再由虚拟平台解释执行。
动态类型语言:在运行期间才做数据类型检查的语言。不需要指定类型,当第一次赋值给变量时,会将数据类型记录下来
Python,Ruby
静态类型语言:数据类型在编译期间检查,需要指定类型。
C++,Java
强类型:强制数据类型定义,如果不经过转换,就不会变成其他类型。如:”1”在强类型中,不能转为1
Python,Java
弱类型:数据类型可以被忽略,如:”1“ + 2 = 3
Lua