首先,我来看一下设计模式中常见的代理模式,也就是所谓的静态代理。
对Java反射机制的一点见解
发表于
|
分类于
Java
首先,从动态语言讲起。像Python、Ruby这种语言,只要修改了代码,修改的效果立即生效,因为这种语言是无需编译,直接执行代码的,我们称这类语言是“动态语言”。而C++、Java这种,在运行之前需要先编译,如果中途修改了代码不重新编译去执行的话就没有变化。但是,Java有一个非常突出的动态相关机制,即反射:我们可以于运行时(区别于编译时)加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class(在这之前修改这个类即时不编译都有效),获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods。