云南北大青鸟java培训告诉你JAVA反射机制原理?
发布网友
发布时间:2024-08-07 07:19
我来回答
共1个回答
热心网友
时间:2024-08-17 06:26
运行时类型识别(Run-timeTypeIdentification,RTTI)主要有两种方式,一种是我们在编译时和运行时已经知道了所有的类型,另外一种是功能强大的“反射”机制。
要理解RTTI在Java中的工作原理,首先必须知道类型信息在运行时是如何表示的,这项工作是由“Class对象”完成的,它包含了与类有关的信息。类是程序的重要组成部分,每个类都有一个Class对象,每当编写并编译了一个新类就会产生一个Class对象,它被保存在一个同名的.class文件中。在运行时,当我们想生成这个类的对象时,运行这个程序的Java虚拟机(JVM)会确认这个类的Class对象是否已经加载,如果尚未加载,JVM就会根据类名查找.class文件,并将其载入,一旦这个类的Class对象被载入内存,它就被用来创建这个类的所有对象。一般的RTTI形式包括三种:
1.传统的类型转换。如“(Apple)Fruit”,由RTTI确保类型转换的正确性,如果执行了一个错误的类型转换,就会抛出一个ClassCastException异常。
2.通过Class对象来获取对象的类型。如
Classc=Class.forName(“Apple”);
Objecto=c.newInstance();
3.通过关键字instanceof或Class.isInstance()方法来确定对象是否属于某个特定类型的实例,准确的说,应该是instanceof/Class.isInstance()可以用来确定对象是否属于某个特定类及其所有基类的实例,这和equals()/==不一样,它们用来比较两个对象是否属于同一个类的实例,没有考虑继承关系。
反射
如果不知道某个对象的类型,可以通过RTTI来获取,但前提是这个类型在编译时必须已知,这样才能使用RTTI来识别。即在编译时,编译器必须知道所有通过RTTI来处理的类。
使用反射机制可以不受这个限制,它主要应用于两种情况,第一个是“基于构件的编程”,在这种编程方式中,将使用某种基于快速应用开发(RAD)的应用构建工具来构建项目。这是现在最常见的可视化编程方法,通过代表不同组件的图标拖动到图板上来创建程序,然后设置构件的属性值来配置它们。这种配置要求构件都是可实例化的,并且要暴露其部分信息,使得程序员可以读取和设置构件的值。当处理GUI时间的构件时还必须暴露相关方法的细细,以便RAD环境帮助程序员覆盖这些处理事件的方法。在这里,就要用到反射的机制来检查可用的方法并返回方法名。Java通过JavaBeans提供了基于构件的编程架构。
第二种情况,在运行时获取类的信息的另外一个动机,就是希望能够提供在跨网络的远程平台上创建和运行对象的能力。这被成为远程调用(RMI),它允许一个Java程序将对象分步在多台机器上,丽江java培训http://www.kmbdqn.cn/认为这种分步能力将帮助开发人员执行一些需要进行大量计算的任务,充分利用计算机资源,提高运行速度。
北大青鸟java培训:Java的反射机制?
首先我们在typeinfo.interfacea包下面新建一个接口A:packagetypeinfo.interfacea;publicinterfaceA{voidf();}接着我们在typeinfo.packageaccess包下面新建一个接口C,接口C继承自接口A,并且我们还另外创建了几个用于测试的方法,注意下面几个方法的权限都是不同的。
北大青鸟java培训:Android开发需要学习哪些内容?
5、Java异常处理,异常的机制原理。6、常用的设计模式:Singleton、Template、Strategy模式。7、JavaAPI介绍:种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。8、Java集合介绍:Collection、Set、List、ArrayList、Vector、
北大青鸟学JAVA共多少阶段 多久?
如果是学士后Java课程,则分为U1、U2、U3和冲刺阶段,总时长6-8个月
北大青鸟java培训:开发主流框架有哪些优缺点?
一、HibernateHibernate书属于一种开放源代码的对象关系映射框架,在使用过程中,它能够对JDBC进行对象封装,让程序员在开发过程中进行随心所欲的使用对象编程。优点:Hibernate使用能够起到Java的反射机制,并不是使用字节码程序进行使用的。在使用过程中具有很好的性能,并且还是一个轻量级的框架程序,有很好的...
新手自学java应该看什么书
而此机制主要针对是工具者而不是应用及程序。 反射机制中的最重要的部分是允许你检查类的结构.用到的API有: java.lang.reflect.Field 返回字段. java.reflect.Method 返回方法. java.lang.reflect.Constructor 返回参数. 方法指针:java没有方法指针,把一个方法的地址传给另一个方法,可以在后面调用它,而接口是更...
学习java一般需要多长时间
java应用广泛,课程体系全面,零基础通过自学Java最终找到一份Java开发的工作,其实这件事还是有难度的。没有好的学习教材以及良性的学习规划、遇到难题无法解决导致学习效率很低、作为一个零基础的初学者没有人指导带着学都是需要克服的问题。培训的话,一般培训机构会根据课程安排及大纲进行教学,通过6个...
怎么学java(怎么学java软件编程)
递归程序,Java的高级特性:反射、代理和泛型。 第六步:这一阶段,你要开始了解多线程了! 这阶段,你主要的知识点如下: 多线程的概念,如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁。Java图形用户介面编程(AWT、Swing),Java的事件处理机制,JavaApplet简介。Java网络编程,网络...
java培训一般要多久?上课时间如何安排?
java培训一般需要4-6个月的时间。上课是进行集中化的学习。【点击测试我适不适合学设计】 Java技能的核心和基础JavaSE。 这一阶段会接触到Java基础语法、面向对象编程思维、Java常用API、多线程并发编程、数据结构/集合结构、IO/网络编程/反射/设计模式。这一阶段往往也是最重要的,后边许多知识和结构的...
Java学习内容有哪些
目前Java培训内容包括:1、HTML+CSS3+数据库 2、Java SE(Java面向对象思想;设计模式、面向对象原则、Java高阶API、线程、网络编程、反射、NIO)3、Java web(Java web基础、JS、DOM操作、JSP/Servlet、第三方工具包、Tomcat...)4、框架(网络原理、HTTP协议、Linux操作系统、云服务搭建、SSM框架应用...
java程序员培训有哪些课程什么内容
学员通过实际项目实践,掌握JavaWeb开发的基本原理和技术,能够开发动态网站和Web应用。5. 数据库与SQL:这门课程介绍数据库的基本概念和SQL语言的使用,包括数据库设计、表的创建与操作、SQL查询等。学员通过实际案例,学会使用数据库管理系统和编写SQL语句,实现数据的存储和检索。除了以上核心课程,千锋教育...