什么是反射机制?

1、在运行状态中,对于任意一个类,都能够知道这个类的属性和方法。
2、对于任意一个对象,都能够调用它的任何方法和属性。这种动态获取信息以及动态调用对象的方法的功能称为JAVA的反射。

反射的作用

1、在运行时判断任意一个对象所属的类;
2、在运行时构造任意一个类的对象;
3、在运行时判断任意一个类所具有的成员变量和方法;
4、在运行时调用任意一个对象的方法;生成动态代理。

反射的原理

反射的实现主要借助以下四个类:Class、Constructor、Field、Method ;
1、通过Class类获取类对象的三种方法:
第一种:通过类名获得:Class<?> class = ClassName.class;
第二种:通过类名全路径获得:Class<?> class = Class.forName(“类名全路径”);
第三种:通过实例对象获得:Class<?> class = object.getClass();

2、通过Class类获取实现类实例化:
Object o = (Object) c.newInstance() ; (其中c为Class类的实例化对象)

3、获取类中的构造方法:
4、获取类中的属性:


5、获取类中的方法:


注:

1、ClassForName 与 ClassLoader 的区别:
1)class.forName()除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块,还会执行给静态变量赋值的静态方法;
2)classLoader只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance才会去执行static块。

java 反射机制原理 简述相关推荐

  1. java反射原理_java反射原理是什么?java反射机制原理详解

    前面给大家介绍了一下什么是java反射机制,那么下面要给大家介绍的就是java反射机制的原理,那么它的原理究竟是怎样的呢?下面就通过下面来做一下详细的了解吧. 首先我们再来介绍一下java反射机制. ...

  2. java反射机制原理详解_java反射机制的详细讲解

    一 , 什么是java反射机制? JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象 ...

  3. java反射机制原理

    JAVA基础--JAVA中的反射机制详解 //:面试题??原理; JAVA反射机制     JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调 ...

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

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

  5. 就这一次,用20张图带你彻底击溃Redis跳表,java反射机制原理

    但是每次查找元素是需要进行遍历,就算我知道某个元素一定在大致的什么位置,也只能一步步走过去,看到这里要觉得有优化的空间,那你也蛮厉害的了,说不定早几年跳表就是你的发明了. 如图删除元素5和插入元素49 ...

  6. JAVA反射机制及其原理实现

    9.1 概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:public.protected.private. OO ...

  7. Java 反射机制和动态代理是基于什么原理,了解过吗?

    工作多年以及在面试中,我经常能体会到,有些面试者确实是认真努力工作,但坦白说表现出的能力水平却不足以通过面试,通常是两方面原因: 1."知其然不知其所以然". 做了多年技术,开发了 ...

  8. Java反射机制的原理及作用

    反射机制是Java特性之一,反射机制是构建框架技术的基础所在.灵活掌握Java反射机制,对大家以后学习框架技术有很大的帮助. 那么什么是Java的反射呢? 大家都知道,要让Java程序能够运行,那么就 ...

  9. java反射机制的概念及原理

    java反射机制 什么是反射? 在java开发中有一个非常重要的概念就是java反射机制,也是java的重要特征之一.反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它 ...

最新文章

  1. EID:宏基因组测序在新发腹泻病毒鉴定中的应用
  2. 任正非在“GTS云与终端云合作与融合进展”汇报会上的讲话
  3. 【模板】割点(割顶)
  4. 备份到云端,准备好了吗?
  5. WebView退出时停止视频播放
  6. 一个周内上线50个增长策略,竟然能这么高效!
  7. 监控页面后退前进,浏览器文档加载事件之pageshow、pagehide
  8. FireEye:GreedyWonk行动针对经济和外交政策网站
  9. 联发科技嵌入式_【MTK联发科技嵌入式面试】联发科技校招最新面试经验-看准网...
  10. js图片加载效果(延迟加载+瀑布流加载)
  11. 全链路压测及阿里全链路压测详解
  12. Office批量打印助手(Excel 批量打印、Word 批量打印)
  13. mysql 视图 多个 select_MySQL中Update、select联用操作单表、多表,及视图与临时表的区别...
  14. MySQL多个筛选条件_mysql一对多关联查询的时候筛选条件
  15. 泰克Tektronix示波器软件TDS520|TDS1001|TDS1002上位机软件NS-Scope
  16. 2010.4.24更新 windows 7 x86/x64 应用全面导航(菜鸟老鸟全兼容)
  17. vmware虚拟机安装maca苹果系统,滚动条无限重启
  18. eclipse黑色主题黑色背景
  19. 约书亚·布洛赫(Joshua Bloch):Bumper-Sticker API设计
  20. SF34 | 股指日内交易策略(开发贴)

热门文章

  1. php 跨域 json,PHP json格式和js json格式 js跨域调用实现代码
  2. 讲python的东哥_安利一个Python大数据分析神器!
  3. JMeter参数化4种实现方式
  4. 国内终于有了一本Akka 的专著,助你架构之路一帆风顺,太香了
  5. Hexo 优化配置汇总【GitHub Actions 看板娘 数学公式 标签云 README 转义问题】
  6. SPringBoot项目调用本地python算法
  7. PAT 1023 组个最小数 python
  8. 整理最近学习的算法:SVM支持向量机(简单)、kappa值、ROC曲线和AUC值
  9. Java创建文件并写入内容
  10. 如何开搓饵不掉钩_搓饵干散不咬钩,拉饵雾化就上鱼。99%钓鱼人心中的疑惑