动态语言和静态语言的区别
- 动态语言/动态语言理解:在编程过程中不会定义变量类型,只有在运行过程中才会检查数据类型。当变量首次赋值时,语言将判断值的类型,并记录数据类型。python是一种典型的动态语言。
- 静态语言/静态语言理解:与动态语言相反,在编程过程中定义变量时,应声明变量的数据类型并在编程过程中进行检查。C、C++、Java是典型的静态语言。
- 强型语言/强制数据类型定义语言理解:变量定义数据类型后,数据不能转换为其他数据类型,无需强制转换。这种语言是数据安全的语言。C、C++、Java是一种强型语言
- 弱语言理解:变量可以赋予不同类型的语言,也就是说,这种语言经常隐藏数据转换,JavaScript是弱语言
- 注意:
- 强弱类型语言的定义不是很清楚
- 由于强型语言需要判断每个变量类型,强型语言的速度略低于弱型语言。换句话说,强型语言带来的严谨性可以避免变量类型和赋值上的许多错误。
- 计算机不能直接识别高级语言,所有高级语言必须翻译成机器语言(二进制机器指令)
- 编译语言理解:将语言翻译成机器指令只执行一次,因此编译语言执行效率高,但不同平台(系统)的机器指令不同,编译语言跨平台性能差。C、C++是编译语言。
- 解释性语言理解:语言运行时逐行翻译成机器指令,每次运行时翻译一次,效率低下。JavaScript是解释性语言。
- 扩展Java是一种特殊的语言,大致分为解释语言。该语言不属于传统的解释语言或传统的编译语言。该语言通过编译器将源代码编译成字节码文件(中间文件/class文件)。字节码文件不能直接由系统执行,但可以安装在平台上的Java虚拟机(VM)解释和执行。换句话说,Java源代码被编译成字节码文件,由Java虚拟机在主要平台上解释和执行,实现了跨平台的特点,但跨平台的前提是必须在平台上安装匹配的Java虚拟机。