软件工程作业六:了解JAVA反射机制
一、什么是反射
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.创建类的对象的方式
- 方式一:new + 构造器
- 方式二:要创建Xxx类的对象,可以考虑:Xxx、Xxxs、XxxFactory、XxxBuilder类中查看是否有静态方法的存在。可以调用其静态方法,创建Xxx对象。
- 方式三:通过反射
软件工程作业六:了解JAVA反射机制相关推荐
- java反射机制深入详解_Java反射机制深入详解
原标题:Java反射机制深入详解 一.概念 反射就是把Java的各种成分映射成相应的Java类. Class类的构造方法是private,由JVM创建. 反射是java语言的一个特性,它允程序在运行时 ...
- java 反射机制详解
火星十一郎 海纳百川, 有容乃大,QQ:791909235,Tel:13137910179 posts - 774, comments - 556, trackbacks - 0, articles ...
- Java反射机制分析指南
一.JAVA是动态语言吗? 一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言. 但JAVA它却有着一个非常突出的动态相关机制:反 ...
- Java 反射机制分析指南
一.JAVA是动态语言吗? 一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言. 但JAVA它却有着一个非常突出的动态相关机制:反 ...
- 关于java反射机制(基础篇)
关于java的反射机制,有一些初步的理解,但是依然存在几点困惑.先将自己理解的部分分享其下,并提出困惑,之后完善. 1. java反射机制是什么? 从两个概念切入:反射机制和java反射机制 ①反射机 ...
- Java反射机制大神必学系列之 ,高级与低级的差别在哪里?
Java反射机制大神必学系列之 ,高级与低级的差别在哪里? java学习爱好者 2019-05-20 19:08 前言 今天介绍下Java的反射机制,以前我们获取一个类的实例都是使用new一个实例出来 ...
- Java基础与提高干货系列——Java反射机制
前言 今天介绍下Java的反射机制,以前我们获取一个类的实例都是使用new一个实例出来.那样太low了,今天跟我一起来学习学习一种更加高大上的方式来实现. 正文 Java反射机制定义 Java反射机制 ...
- Java反射机制Reflection
Java反射机制 1 .class文件 2 Class类 3 Class类与反射机制 4 Java反射机制的类库支持及简介 5 反射机制的定义与应用 6 反射机制Demo Java反射机制demo(一 ...
- java反射机制的简单使用和优缺点
java反射机制的使用 一.反射是什么? JAVA反射机制是在运行状态中,对于任意一个类,都能够获取这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取类信息以及动 ...
最新文章
- python引用传递的区别_python的值类型和引用类型及值传递和引用传递的区别
- File类判断功能的方法
- 小米android停止,小米由于错误而停止将Android 10推广到MiA3
- expec不管异常 try_java – 如何使用ExpectedException规则在一个测试中测试多个异常?...
- Workflow WF Reference Links for 2009-03-06
- Hibernate级联删除时:Cannot delete or update a parent row: a foreign key constraint fails异常...
- 数据大放送之各省30米DEM数据
- 服务器主板电源适配器维修,自己修理笔记本电脑电源适配器
- mac磁盘清理的方法大全
- TypeScript学习总结
- win10系统升级,提示VirtualBox 立即卸载此应用,因为它与Windows 10 不兼容
- 最小编辑距离 动态规划 python
- PHP实现页面静态化页面
- 验厂中首当其冲的BSCI是什么
- matplotlib中设置窗口尺寸大小
- 在线短视频秒播优化之视频文件格式之MP4文件Moov box的位置
- ERNIE加持,飞桨图神经网络PGL全新升级
- HAL库教程10:定时器的PWM模式应用
- 如何编写组装一台计算机的策划书,电脑组装策划书模板范本
- 求大于等于(小于等于)一个整数最小2次幂算法
热门文章
- Java 第一个程序Hello World
- 运行opencv程序后出现runtime error! R6025-pure virtual function call 错误提示的解决方法
- Centos 6.5完美安装办公软件WPS
- java点菜系统(纯Java简易版)
- 基于matlab的RGB到YCbCr颜色空间的转换
- Win10使用EasyBCD安装Ubuntu20.04双系统(windows引导)
- [NJUST]19级上机考试题解
- 笔记 -- 逆变电感设计3
- 【Linux】 1.Linux入门
- 数据可视化:部分整体类可视化图表大全