在编程中的语言中,有些语言是动态类型的,有些语言是静态类型的。
动态:运行时检查
静态:编译时检查
有些语言是强类型,有些语言是弱类型。
强类型:强制显示引用,例如:int i = 0;
若类型:不需要强制显示引用,例如:var i = 0;
Java是一种什么样的语言类型?
Java是静态的强类型语言,但是有了反射机制之后,Java也具备了动态语言的能力。
Java的反射
在运行的时候,反射机制可以获取:
对象
类的定义
属性,方法
调用方法
构造对象
甚至可以修改类的定义。
Java反射的实现
在 JDK 中提供了反射的动态代理,还有诸如 ASM,cglib,javassist。