不是所有人都敢改变自己,但所有敢于改变自己的人 都将成功!

西安软件培训_Java培训机构_西安IT培训_Java视频教程—西安兆隆

当前位置: > Java开发 >

Java反射机制浅谈

时间:2017-10-20 09:00来源:未知 作者:admin 浏览:
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
(信息来源:兆隆IT云学院)

------分隔线----------------------------

Java开发环境安装配置教程
Java反编译常见工具
Java面试宝典及答案
西安Java培训要多少钱?万八千的学费值得吗?
------分隔线----------------------------

Java开发环境安装配置教程

自学或者参加Java开发培训班第一课都是先要学会Java软件开发环境jdk的安装与配置,下边西安兆隆IT云学院Java开发培训班为大家整理Java安装教程。

Java反射机制浅谈

反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。但是Java开发中反射机制使用不当会成本很高!

Java反编译常见工具

通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程。尤其是像.NET、Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码。当然,

Java游戏编程入门

很多学习Java编程的人,更有人想从事游戏编程行业,那么对于Java编程语言而言,从事Java游戏编程需要如何去做呢?首先Java语言基础是必不可少的,可以通过Java培训机构系统

推荐内容