猿问

Java是一种动态编程语言吗?

动态编程语言的定义说“这些语言是那些在运行时执行多种通用行为的语言,这与在编译时执行相同操作的静态编程语言相反。它可以通过添加新代码、扩展对象和定义来实现” .

据我所知,许多编程语言都以 Java 等包或 C++ 等头文件的形式进行封装。因此,作为程序员,我将编写的代码肯定会在编译时扩展,并最终转换为汇编代码,最后转换为机器代码。那么每一种高级语言都变得动态了吗?


FFIVE
浏览 72回答 1
1回答

慕的地10843

一般来说,可以通过类型系统来区分静态和动态编程语言。在动态类型系统中你可以有以下var x = 2x = "c"意思是,给定变量的类型可能会在其生命周期内发生变化。静态类型系统不允许这样做。C#dynamic数据类型是此功能的一个示例。注意不要将动态与推断或弱类型系统混淆。推断类型系统不需要变量的正式声明,但会根据分配的值推断类型。它不允许用不同的类型重新声明变量。var x = 2  // the type of x is intx = "C"  // compile error: incompatible types!弱类型系统允许与声明的变量类型不兼容的操作。C 允许将指针转换为任何类型:foo(void *ptr) {  char *str;  strcpy(str, (char *)ptr);  int i = &(int *)ptr + 1;}类型系统的所有组合都存在,有时使用相同的编程语言:静态/动态、隐式(推断)/显式、弱/强。
随时随地看视频慕课网APP

相关分类

Java
我要回答