一、什么是反射

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. File类判断功能的方法
  3. 小米android停止,小米由于错误而停止将Android 10推广到MiA3
  4. expec不管异常 try_java – 如何使用ExpectedException规则在一个测试中测试多个异常?...
  5. Workflow WF Reference Links for 2009-03-06
  6. Hibernate级联删除时:Cannot delete or update a parent row: a foreign key constraint fails异常...
  7. 数据大放送之各省30米DEM数据
  8. 服务器主板电源适配器维修,自己修理笔记本电脑电源适配器
  9. mac磁盘清理的方法大全
  10. TypeScript学习总结
  11. win10系统升级,提示VirtualBox 立即卸载此应用,因为它与Windows 10 不兼容
  12. 最小编辑距离 动态规划 python
  13. PHP实现页面静态化页面
  14. 验厂中首当其冲的BSCI是什么
  15. matplotlib中设置窗口尺寸大小
  16. 在线短视频秒播优化之视频文件格式之MP4文件Moov box的位置
  17. ERNIE加持,飞桨图神经网络PGL全新升级
  18. HAL库教程10:定时器的PWM模式应用
  19. 如何编写组装一台计算机的策划书,电脑组装策划书模板范本
  20. 求大于等于(小于等于)一个整数最小2次幂算法

热门文章

  1. Java 第一个程序Hello World
  2. 运行opencv程序后出现runtime error! R6025-pure virtual function call 错误提示的解决方法
  3. Centos 6.5完美安装办公软件WPS
  4. java点菜系统(纯Java简易版)
  5. 基于matlab的RGB到YCbCr颜色空间的转换
  6. Win10使用EasyBCD安装Ubuntu20.04双系统(windows引导)
  7. [NJUST]19级上机考试题解
  8. 笔记 -- 逆变电感设计3
  9. 【Linux】 1.Linux入门
  10. 数据可视化:部分整体类可视化图表大全