JAVA REFLECTION 学习

本文首先对比了静态语言和动态语言的特点,然后详细介绍了Java反射机制的基本概念及其应用场景,特别是Class类的重要作用。最后推荐了一些参考资料供读者深入学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天感觉还是有必要再理解一下 Java Reflection

在说 Reflection 之前,我感觉还是先对静态语言和动态语言有一个了解比较好,下面来看一下一些资料:

<o:p> </o:p>

1 http://cavingdeep.cnblogs.com/archive/2005/08/03/206374.html 说明了什么是静态的,什么是动态的,总结一下就是:

<o:p> </o:p>

动态语言,准确地说,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如众所周知的 ECMAScript(JavaScript) 便是一个动态语言。除此之外如 RubyPython 等也都属于动态语言,而 CC++ 等语言则不属于动态语言。(通俗的说法就是:静态的是事先进行规划,考虑到后面需要做的一些事情;而动态的是管他后面会是怎么样呢,先开始再说,要的就是速度,呵呵,这有点和我们生活中做人做事的方式有些相似 ~ <o:p> </o:p>

<o:p> </o:p>

2 http://www.iteye.com/topic/35763 对动态语言和静态语言的一个比较新颖的认识,主要从内存的分配和利用情况来说的,也就是说:动态语言不事先分配内存,到用的时候再说,而静态语言会先分配内存,并进行检查,大了放不下啊,呵呵 <o:p> </o:p>

<o:p> </o:p>

3 http://robbin.iteye.com/blog/33971 讨论了静态语言和动态语言在开发方面的优势和使用情况等,还在讨论中,不好定论。 <o:p> </o:p>

<o:p> </o:p>

注:一般来说,静态语言比较容易调试,而动态语言不太容易调试,因为变数太多,呵呵。 <o:p> </o:p>

<o:p> </o:p>

由于静态语言不够灵活,再加上现在随着系统的扩大,以及框架建立的需要,所以说静态语言也需要越来越多的动态的特性,而作为现在首当其冲的 Java 语言,也要通过反射,在执行期间做一些动态的调整以适应多变的需求。

<o:p> </o:p>

Reflection 机制中,最重要的一个类就是 Class 类,这里面记录了我们所定义的 class 中的一些信息,我们可以通过其获得我们定义的 变量、方法、构造函数以及父类等等,并且可以动态的对其进行调用,这样就可以在某些时候将我们没有事先设计的代码在运行期间执行,而不对原有的程序进行改变。

<o:p> </o:p>

具体的使用样例可以参考: Core Java 2 第六、七版,或者侯捷的 java Reflection 教程(下载地址:http://www.blogjava.net/Files/wqhtomcat/Java反射机制-javatwo-2004-reflection.rar)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值