反射源自于“自我审查、自我修改和自我复制”的思想,是为了改变而对自己进行反思。在编程中,您使用反射来检查程序本身的结构,以便在使用它而不仅仅是检查它时使用。你得到的是一个表示程序的东西,你可以用它来修改它,而不仅仅是操作它的数据。
更多信息可以在维基百科文章中找到。
还有一个概念叫做类型内省,它指的是在运行时确定对象类型的能力。
编辑:我意识到你的问题是面向语言的,但在Java中,反射用于识别对象具有哪些成员,而内省允许您识别对象具有哪些JavaBeans属性,这就是为什么内省类位于java.beans包中的原因。不过,在其他语言中这两个术语的确切区别我不确定。
在第3和第4个定义的意义上,反射可以是内省的。也就是说,内省是对自己的反思。我认为内省这个词更具体,更适合用于代码分析自身的行为,但我并不认为反射完全不合适。