在编程中的语言中,有些语言是动态类型的,有些语言是静态类型的。

动态:运行时检查
静态:编译时检查

有些语言是强类型,有些语言是弱类型。

强类型:强制显示引用,例如:int i = 0;
若类型:不需要强制显示引用,例如:var i = 0;

Java是一种什么样的语言类型?

Java是静态的强类型语言,但是有了反射机制之后,Java也具备了动态语言的能力。

Java的反射

在运行的时候,反射机制可以获取:

对象
类的定义
属性,方法
调用方法
构造对象

甚至可以修改类的定义。

Java反射的实现

在 JDK 中提供了反射的动态代理,还有诸如 ASM,cglib,javassist。