为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

FFIVE 2023-06-08 17:09:37
动态编程语言的定义说“这些语言是那些在运行时执行多种通用行为的语言,这与在编译时执行相同操作的静态编程语言相反。它可以通过添加新代码、扩展对象和定义来实现” .据我所知,许多编程语言都以 Java 等包或 C++ 等头文件的形式进行封装。因此,作为程序员,我将编写的代码肯定会在编译时扩展,并最终转换为汇编代码,最后转换为机器代码。那么每一种高级语言都变得动态了吗?
查看完整描述

1 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

一般来说,可以通过类型系统来区分静态和动态编程语言。在动态类型系统中你可以有以下


var x = 2

x = "c"

意思是,给定变量的类型可能会在其生命周期内发生变化。静态类型系统不允许这样做。C#dynamic数据类型是此功能的一个示例。


注意不要将动态与推断或弱类型系统混淆。推断类型系统不需要变量的正式声明,但会根据分配的值推断类型。它不允许用不同的类型重新声明变量。


var x = 2  // the type of x is int

x = "C"  // compile error: incompatible types!

弱类型系统允许与声明的变量类型不兼容的操作。C 允许将指针转换为任何类型:


foo(void *ptr) {

  char *str;

  strcpy(str, (char *)ptr);

  int i = &(int *)ptr + 1;

}

类型系统的所有组合都存在,有时使用相同的编程语言:静态/动态、隐式(推断)/显式、弱/强。


查看完整回答
反对 回复 2023-06-08
  • 1 回答
  • 0 关注
  • 55 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信