java反射机制基本原理包含实际例子demo以及常用反射API

反射机制

静态语言和动态语言

分类

  • 动态语言: php、asp、javascript、python、perl…
  • 静态语言: Java、C、C++、C#…

区别1 变量的数据类型

  • 动态语言: 变量使用之前无需声明类型,运行时才确定数据类型
  • 静态语言: 变量使用前必须声明类型,编译时就确定数据类型

区别2 自身结构

  • 动态语言: 在运行时代码可以根据某些条件改变自身结构。
  • 静态语言: 运行时,结构不可变
# python 动态语言例子
def sum(a, b):
    return a + b;
print sum(1,2);
print sum("Hello ", "Word")
# 结论: sum函数没有指定参数类型,只在运行时决定参数类型。
// js 动态语言例子
function Person(name, age, job){
   
  this.name = name;
};
person = new Person("Eric");
person.work = function(){
   alert('I am working');} //为对象添加方法
delete person.work;//删除方法
// 结论: javascript对象可以在运行时给对象添加和删除方法

关于反射

  • 反射是 Java 被视为准动态语言的关键
  • 反射机制允许程序在执行期间借助 Reflection API 获取任何类的内部信息,并能直接操作任意对象的内部属性及方法。
  • 个人理解: 原本是静态语言的java通过反射可以实现动态获取对象和类的信息
// 「正射」
// 使用某个类时必定知道它是什么类,是用来做什么的。
// 直接对这个类进行实例化,之后使用这个类对象进行操作。
Apple apple = new 

你可能感兴趣的:(java,java,copilot)