Java 为什么要用反射、成员变量、局部变量、静态变量的区别

Java反射

有什么作用?

一句话概括就是使用反射可以赋予jvm动态编译的能力
否则类的元数据信息只能用静态编译的方式实现,例如热加载,Tomcat的classloader等等都没法支持

我们为什么要使用反射?

静态编译:在编译时确定类型,绑定对象即通过。
动态编译:运行时确定类型,绑定对象。动态编译最大限度地发挥了Java的灵活性,
		体现了多态的应用,可以减低类之间的耦合性。
我们可以明确的看出动态编译的好处,而反射就是运用了动态编译创建对象。
当我们的程序在运行时,需要动态的加载一些类这些类可能之前用不到所以不用加载到jvm,
而是在运行时根据需要才加载,

反射的用途:

  1. 获取类、类的构造方法、成员变量、成员方法、Mian方法、
  2. 通过反射运行配置文件内容
    运用反射。我们可以相应的增加一个配置文件,在里面记录包中所有的类名,
    包中类增加时就加一个类名,删除时就删除一个类名。
    让main方法去读取这个配置文件中的类名,通过反射获得实例,完全不用我们去修改main方法中的代码
  3. 反射方法的其它使用之—通过反射越过泛型检查

SSM框架使用反射的地方:

	比如spring xml配置的bean-->转化为对象
	mybatis的resultMap映射等等   

2.什么是成员变量、局部变量、静态变量

 成员变量随着对象的创建而存在,随着对象被回收而释放。

 静态变量随着类的加载而存在,随着类的消失而消失。
 成员变量存储在堆内存的对象中,所以也叫对象的特有数据。

 静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据

 同时Java的方法又可以分为,成员方法(普通方法)、全局方法(static)、构造方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值