Java反射机制的理解

Java程序中的对象在运行时可以表现为两种类型,即编译时类型和运行时类型。例如 Person p = new Student();
,这行代码将会生成一个p变量,该变量的编译时类型为Person,运行时类型为Student。

有时,程序在运行时接收到外部传入的一个对象,该对象的编译时类型是Object,但程序又需要调用该对象的运行时类型的方法。这就要求程序需要在运行时发现对象和类的真实信息,而解决这个问题有以下两种做法:

第一种做法是假设在编译时和运行时都完全知道类型的具体信息,在这种情况下,可以先使用instanceof运算符进行判断,再利用强制类型转换将其转换成其运行时类型的变量即可。第二种做法是编译时根本无法预知该对象和类可能属于哪些类,程序只依靠运行时信息来发现该对象和类的真实信息,这就必须使用反射。

具体些来讲jiushi就是,通过反射机制,我们可以实现如下操作:

一:程序运行时,可以通过反射获得任何一个类的Class对象,通过这个对象来查看这个类的信息,
二:程序运行时可以通过反射创建任意一个类的实例,并访问该实例的成员.
三:程序运行时,可以通过反射机制生成一个类的动态代理类或者动态代理对象.

Java反射在实际开发中有哪些应用场景?

常见的应用场景有.

使用JDBC的时候,创建数据库的链接,可以通过反射机制加载数据库的驱动程序
多数框架都支持注解和XML配置,从配置中解析出来的类是字符串,需要利用反射机制实例化.
面相切面(AOP)的实现方案,是在程序运行时创建目标对象的代理类,这必须有反射机制来实现.

Java反射机制的理解和在项目中的应用场景相关推荐

  1. JAVA反射机制初步理解

    Java中我们这样声明一个类,如人类 package cn.com.lcx.test;public class Person {public String sex = "男";pr ...

  2. 关于java反射机制(基础篇)

    关于java的反射机制,有一些初步的理解,但是依然存在几点困惑.先将自己理解的部分分享其下,并提出困惑,之后完善. 1. java反射机制是什么? 从两个概念切入:反射机制和java反射机制 ①反射机 ...

  3. 夯实Java基础(二十一)——Java反射机制

    1.反射机制概述 Java反射机制是指程序在运行状态中,对于任何一个类,我们都能够知道这个类的所有属性和方法(包括private.protected等).对于任何一个对象,我们都能够对它的属性和方法进 ...

  4. java反射机制原理,为什么需要反射,反射的作用

    最近在学java反射以及动态代理,好多博客都写的十分官方.就自己整合些资料.加深java反射机制的理解. 在说反射之前,我们要先了解动态语言和静态语言的概念: 动态类型语言 所谓动态类型语言,就是类型 ...

  5. Java - 反射机制

    Java反射机制 Java反射机制概述 理解Class类并获取Class实例 类的加载与ClassLoader的理解 创建运行时类的对象 获取运行时类的完整结构 调用运行时类的指定结构 反射的应用:动 ...

  6. 深入理解java反射机制

    一,java的核心机制 java有两种核心机制:java虚拟机(JavaVirtual Machine)与垃圾收集机制(Garbage collection): Java虚拟机:是运行所有Java程序 ...

  7. 秒懂系列,深入理解Java反射机制

    文章目录 深入理解Java反射机制 一.Java反射概述 二.Java创建对象思想传递 三.类对象 3.1 类对象和类的对象 3.2 三种获取类对象的方法 四.Class对象的常用方法 4.1 获取成 ...

  8. 理解Java反射机制

    理解Java反射机制 1. 概述 2. 反射原理 3. 反射的优缺点 4. 反射的用途 5. 反射相关的类 5.1 Constructor 5.2 Field 5.3 Method 5.4 Class ...

  9. 【重铸Java根基】理解Java反射机制

    最近带应届新员工,教然后知不足,发现自己把很多基础知识已经还给了大学老师,因此开贴,温故而知新! 从最基础的Java知识开始由浅入深,在某个知识点中遇到有疑惑的点会额外多写几句或者单独开帖子展开. 本 ...

最新文章

  1. 爬取 爱笔智能 招聘职位
  2. 计算机是怎样知道屏幕位置的,如何看自己的电脑显示器是多少寸
  3. 图像分割——基于二维灰度直方图的阈值处理
  4. 比较好的电脑系统_效果好的筛分移动破碎站有优惠吗?
  5. sql聚集索引和非聚集索引_SQL Server中非聚集索引概述
  6. C/C++头文件全解析
  7. 牛客 动物森友会(最大流+二分)
  8. 【解决方案 六】---在VS2015里使用ILDasm
  9. C#编程,byte 与 int 相互转换
  10. iphone7 无法连接计算机看照片,教你iphone7一键导出照片至电脑方法及iPhone7连接电脑itunes没反应怎么办...
  11. 科研工作者要会的技能----查找顶刊会议或期刊的方法
  12. 一文说清 Linux System Load
  13. 几种常用的Web安全认证方式
  14. html五星评分标准,五星级酒店评分标准.doc
  15. 微博上一些有用的话(六)
  16. hsql导入mysql_关于HSQLDB访问已有数据库文件的操作说明
  17. 计算机上机考试可以粘贴复制吗,急!高会无纸化考试打字慢 该如何复制粘贴?...
  18. 滴滴在HBase性能与可用性上的探索与实践
  19. 短视频平台-小说推文(最右)推广任务详情
  20. 群翔ShopNum1分销系统V8.1升级版,更优更全更盈利

热门文章

  1. ESP8266读取网络时间TM1637显示时间
  2. IntelliJ IDEA插件开发指南(一)
  3. KYODO 泰和 AL809 手台 对讲机 写频线 定义
  4. 【软考】-- 多媒体基础知识
  5. Android 泰语、缅甸语等复杂语言圈圈问题
  6. 3D建模大佬如何制作出惊艳四方的游戏建模
  7. 漏洞修复:Web Server Misconfiguration: SSL Certificate Hostname Discrepancy
  8. 训练softmax分类器实例_吴恩达深度学习笔记(56)-训练一个 Softmax 分类器
  9. 基于免疫优化算法在物流配送多中心选址的matlab仿真
  10. 化解冲突;维持和谐!