• 兆隆IT云学院

    招生对象
             年龄再20-30周岁之间,具备大专或同等及以上学历(含大专及以上在读),具备良好的逻辑思维能力,有一定的计算机语言基础,身体健康无残疾,有志再IT行业发展的人士。
    培养目标
       通过对学员专业技术的培训和职业素养的强化训练,使学员具备快速进入软件行业从事专业技术及技术相关工作的能力,并对学员日后

    课程大纲

    师资队伍

    就业展示

  • 兆隆软件培训学院

    招生对象
             年龄在16-22周岁之间,具备高中毕业或同等学历,身体健康无残疾,具有良好的逻辑思维能力,有志IT行业发展人士。
    培养目标
       通过对学员专业基础理论和专业技术的培训和职业素养的强化训练,使学员具备进入软件行业从事专业技术及技术相关工作的能力,并对学员日后职业发展打下必要的知识体系及能力基础

    课程大纲

    师资队伍

    就业展示

您的位置:主页>Java开发>正文

Java反射机制浅谈

2017年10月20日 09:11供稿中心:兆隆教育

摘要: 反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。但是Java开发中反射机制使用不当会成本很高!
1.何谓反射机制
 
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
 
2.反射机制如何实现
 
谈到反射机制,最诱人的莫过于“动态”二字了。接触过C语言的童鞋们都知道,C语言中也有个和“动态”搭上边的函数:malloc()函数。其实这里的两个动态是一个意思,都指的是非编译时处理,抑或运行时处理。这种机制,可以让程序的弹性增加不少,因为借由此机制,客户可以在程序运行时改变一些他关心的性质:分配内存(当然他可能 完全不知道这么做了),调用某个类(当然他还是被蒙在鼓里)等。
 
3.反射机制的作用
 1.反编译:.class-->.java
 2.通过反射机制访问java对象的属性,方法,构造方法等;
 
首先不得不提到的是java.lang.Class这个类。
Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类。也就是说,ClassLoader找到了需要调用的类时(java为了调控内存的调用消耗,类的加载都在需要时再进行,很抠但是很有效),就会加载它,然后根据.class文件内记载的类信息来产生一个与该类相联系的独一无二的Class对象。该Class对象记载了该类的字段,方法等等信息。以后jvm要产生该类的实例,就是根据内存中存在的该Class类所记载的信息(Class对象应该和我所了解的其他类一样会在堆内存内产生、消亡)来进行。
 
获取Class对象有三种方式:
 
1.通过Object类的getClass()方法。例如:
Class c1 = new String("").getClass();
2.通过Class类的静态方法——forName()来实现:
Class c2 = Class.forName("MyObject");
3.如果T是一个已定义的类型的话,在java中,它的.class文件名:T.class就代表了与其匹配的Class对象,例如:
Class c3 = Manager.class;
Class c4 = int.class;
Class c5 = Double[].class;
 
JAVA反射的再次学习,灵活的运用它,能够使我们的代码更加灵活,但是它也有它的缺点,就是运用它会使我们的软件的性能降低,复杂度增加,所以还要我们慎重的使用它。

来源:www.zhaolongedu.com
陕ICP备05010305号 Copyright © 2001-2018隶属于西安兆隆计算机培训学校版权所有