一般而言,动态语言定义是:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。
从这个观点看,perl,python,ruby是动态语言,c++,java,c#不是动态语言
尽管在这样的定义与分类下java不是动态语言,它却有着一个非常突出的动态相关机制:reflection。
这个字的意思是“反射、映象、倒影”,用在java身上指的是我们可以于运行时加载、探知、使用编译期间完全未的classes。
换句话说,java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods。
这种“看透class”的能力(the ability of the program to examine itself)被称introspection(内省、内观、反省)。
reflection和introspection是常被并提的两个术语
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/