一、什么是反射

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象。
以上的总结就是什么是反射。

二、反射的优缺点:

1、优点:

在运行时获得类的各种内容,进行反编译,对于Java这种先编译再运行的语言,能够让我们很方便的创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代码的链接,更加容易实现面向对象。

2、缺点:

(1)反射会消耗一定的系统资源,因此,如果不需要动态地创建一个对象,那么就不需要用反射;

(2)反射调用方法时可以忽略权限检查,因此可能会破坏封装性而导致安全问题。

三、反射的常见用途:

1、反编译:.class文件 --> .java文件

2、通过反射机制访问 java 对象的属性,方法,构造方法等。

3、当我们在使用IDE,比如Ecplise时,当我们输入一个对象或者类,并想调用他的属性和方法是,一按点号,编译器就会自动列出他的属性或者方法。

4、反射最重要的用途就是开发各种通用框架。比如很多框架(Spring)都是配置化的(比如通过XML文件配置Bean),为了保证框架的通用性,他们可能需要根据配置文件加载不同的类或者对象,调用不同的方法,这个时候就必须使用到反射了,运行时动态加载需要的加载的对象。

四、反射机制常用的类:

Java.lang.Class;

Java.lang.reflect.Constructor;

Java.lang.reflect.Field;

Java.lang.reflect.Method;

Java.lang.reflect.Modifier;

五、Class类

1.类的加载过程:
       程序经过javac.exe命令以后,会生成一个或多个字节码文件(.class结尾)。
       接着我们使用java.exe命令对某个字节码文件进行解释运行。相当于将某个字节码文件
       加载到内存中。此过程就称为类的加载。加载到内存中的类,我们就称为运行时类,此
       运行时类,就作为Class的一个实例。
2.换句话说,Class的实例就对应着一个运行时类。
3.加载到内存中的运行时类,会缓存一定的时间。在此时间之内,我们可以通过不同的方式
来获取此运行时类。

4.创建类的对象的方式

  1. 方式一:new + 构造器
  2. 方式二:要创建Xxx类的对象,可以考虑:Xxx、Xxxs、XxxFactory、XxxBuilder类中查看是否有静态方法的存在。可以调用其静态方法,创建Xxx对象。
  3. 方式三:通过反射

软件工程作业六:了解JAVA反射机制相关推荐

  1. java反射机制深入详解_Java反射机制深入详解

    原标题:Java反射机制深入详解 一.概念 反射就是把Java的各种成分映射成相应的Java类. Class类的构造方法是private,由JVM创建. 反射是java语言的一个特性,它允程序在运行时 ...

  2. java 反射机制详解

    火星十一郎 海纳百川, 有容乃大,QQ:791909235,Tel:13137910179 posts - 774, comments - 556, trackbacks - 0, articles ...

  3. Java反射机制分析指南

    一.JAVA是动态语言吗? 一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言. 但JAVA它却有着一个非常突出的动态相关机制:反 ...

  4. Java 反射机制分析指南

    一.JAVA是动态语言吗? 一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言. 但JAVA它却有着一个非常突出的动态相关机制:反 ...

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

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

  6. Java反射机制大神必学系列之 ,高级与低级的差别在哪里?

    Java反射机制大神必学系列之 ,高级与低级的差别在哪里? java学习爱好者 2019-05-20 19:08 前言 今天介绍下Java的反射机制,以前我们获取一个类的实例都是使用new一个实例出来 ...

  7. Java基础与提高干货系列——Java反射机制

    前言 今天介绍下Java的反射机制,以前我们获取一个类的实例都是使用new一个实例出来.那样太low了,今天跟我一起来学习学习一种更加高大上的方式来实现. 正文 Java反射机制定义 Java反射机制 ...

  8. Java反射机制Reflection

    Java反射机制 1 .class文件 2 Class类 3 Class类与反射机制 4 Java反射机制的类库支持及简介 5 反射机制的定义与应用 6 反射机制Demo Java反射机制demo(一 ...

  9. java反射机制的简单使用和优缺点

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

最新文章

  1. python网络爬虫工程师薪资-python网络爬虫工程师找工作应该准备什么?
  2. 深入了解Mybatis架构设计
  3. android studio run按钮为灰色
  4. 为什么现在的人越来越容易离婚了?
  5. 两用物项许可证办理流程_[进出口管制类]两用物项和技术进口许可证之易制毒化学品(6)欣海丁丁检务工作室(272)...
  6. spark分片个数的确定及Spark内存错误(GC error)的迂回解决方式
  7. mysql 写出高性能sql 防止索引失效总结
  8. android手机抓包工具 tcp协议,Android常用抓包工具之TcpDump
  9. 利用python3将word批量转换成pdf
  10. 【高中数学】向量积坐标公式
  11. java pow_Java中Math.pow()的用法
  12. PHP毕业设计项目作品源码选题(13)学校排课和选课系统毕业设计毕设作品开题报告
  13. java计算机毕业设计高校防疫物资管理系统MyBatis+系统+LW文档+源码+调试部署
  14. 无人机飞行模式(Ardupilot和MAVLink协议)(STABILIZE、ALTITUDE HOLD、LOITER、GUIDE、AUTO、LAND、RTL)
  15. 电脑开始菜单没有了关机选项,怎么办
  16. 网易明日之后那个服务器人最多,明日之后:网易“公认”全服前4强营地出炉,竟全部来自一个区...
  17. UHS-I SD/miroSD接口速率速查表
  18. Pantoea(泛菌属)——肠道内善恶兼备的神秘细菌
  19. python十个实战项目
  20. Java语言中抽取word、pdf的四种方法

热门文章

  1. 错误源计算机检,Voevodsky | 单一基础的源起——为避免数学错误而发展计算机验证证明的个人使命...
  2. 慢慢毁掉你的,是你的将就与凑合
  3. 教师资格证信息技术知识点1
  4. 解决跨站脚本注入,跨站伪造用户请求,sql注入等http安全漏洞
  5. 视频剪辑软件,它可以满足您进行视频制作的需要,使用剪映mac版能够轻松对视频进行各种编辑
  6. wps表格带单位求和
  7. 2019-2020-1 20175227张雪莹《信息安全系统设计基础》 实验五 《通讯协议设计》
  8. 【视频】面试一年大厂经验Java程序员,回答不是很满意与18KOffer失之交臂 生活日常
  9. 如何将多个条码标签打印在一张A4纸上
  10. 政企解决方案 | 携手一线城市政企,打造可观测性国产化政务平台