Java 反射 面试题
1)Java反射机制的作用
1. 在运行时判断任意一个对象所属的类
2. 在运行时构造任意一个类的对象
3. 在运行时判断任意一个类所具有的成员变量和方法
4. 在运行时调用任意一个对象的方法
2)什么是反射机制?
简单说,反射机制值得是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。
3)java反射机制提供了什么功能?
1. 在运行时能够判断任意一个对象所属的类
2. 在运行时构造任意一个类的对象
3. 在运行时判断任意一个类所具有的成员变量和方法
4. 在运行时调用任一对象的方法
5. 在运行时创建新类对象
4)哪里用到反射机制?
- 各种框架用的最多的就是反射
- 加载驱动
- 读取配置文件
5)运用反射的优缺点
优点:
反射提高了程序的灵活性和扩展性,降低耦合性,提高自适应能力。它允许程序创建和控制任何类的对象,无需提前硬编码目标类
缺点:
(1)性能问题:使用反射基本上是一种解释操作,用于字段和方法接入时要远慢于直接代码。因此反射机制主要应用在对灵活性和扩展性要求很高的系统框架上,普通程序不建议使用。
(2)使用反射会模糊程序内内部逻辑:程序员希望在源代码中看到程序的逻辑,反射等绕过了源代码的技术,因而会带来维护问题。反射代码比相应的直接代码更复杂。
6)如何使用java的反射
a. 通过一个全限类名创建一个对象
1)、Class.forName(“全限类名”); 例如:com.mysql.jdbc.Driver Driver类已经被加载到 jvm中,并且完成了类的初始化工作就行了
2)、类名.class; 获取Class<?> clz 对象
3)、对象.getClass();
b. 获取构造器对象,通过构造器new出一个对象
1). Clazz.getConstructor([String.class]);
2). Con.newInstance([参数]);
c. 通过class对象创建一个实例对象(就相当与new类名()无参构造器)
1). Clazz.newInstance();
d. 通过class对象获得一个属性对象
1)、Field c=clz.getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。
2)、Field c=clz.getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段 e.
e、通过class对象获得一个方法对象
1). Clazz.getMethod(“方法名”,class……parameaType);(只能获取公共的)
2). Clazz.getDeclareMethod(“方法名”);(获取任意修饰的方法,不能执行私有)
3) M.setAccessible(true);(让私有的方法可以执行)
f. 让方法执行
1). Method.invoke(obj实例对象,obj可变参数);-----(是有返回值的)
Java 反射 面试题相关推荐
- java反射 面试题_使用Java反射更改私有静态最终字段
假设没有SecurityManager阻止你执行此操作,则可以使用setAccessible来绕开private并重置修饰符以摆脱final,并实际上修改private static final字段. ...
- JAVA反射-面试题
1. 什么是反射? 反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为 Jav ...
- 深入理解Java反射+动态代理,java开发面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起在群里探讨技术. 答: ...
- 【面试】Java 反射机制(常见面试题)
文章目录 前言 一.反射是什么? 二.为什么要有反射 三.反射 API 3.1 获取 Class 对象的三种方式 3.2 获取成员变量 3.3 获取构造方法 3.4.获取非构造方法 四.实践 五.常见 ...
- 关于Java反射的面试题
关于Java反射的面试题 问题:&操作符和&&操作符有什么区别? 答案:当一个&表达式在求值的时候,两个操作数都会被求值,&&更像是一个操作符的快捷方式 ...
- 反射创建对象_面试题汇集——java反射
反射是动态获取信息以及动态调用对象的方法,在运行状态中,对于任意一个类,都能够知道这个类中的所有属性和方法:并且对于任意一个对象,都能够调用它的任意一个方法. 1.除了使用new创建对象之外,还可以用 ...
- Java面试题——Java反射
42. 什么是反射?反射的应用场景? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调 ...
- Java反射高频面试题(附答案)
1.除了使用new创建对象之外,还可以用什么方法创建对象? 使用Java反射可以创建对象! 2.Java反射创建对象效率高还是通过new创建对象的效率高? 通过new创建对象的效率比较高.通过反射时, ...
- java面试题--java反射机制
Java反射机制的作用: 1)在运行时判断任意一个对象所属的类. 2)在运行时判断任意一个类所具有的成员变量和方法. 3)在运行时任意调用一个对象的方法 4)在运行时构造任意一个类的对象 拓展: 1. ...
- 前方高能!金三银四Java高级工程师面试题整理
前言 面试时间将近两个小时(期间等待二面面试官来面我的时候等了半个多小时)面试官问的东西很多,还挖了好几个坑,一个技术点套着一个技术点的问,一定要做好万全的准备.问了一些基本层面上的技术点都答出来了, ...
最新文章
- tcp ssl java_SSL的TCP通信
- jdk 1.8 concurrenthashmap扩容原理
- html给文字加黑色边框,如何给显示文字加一层黑色边框
- mysql字符集,insert,update,delete,select
- 二维数组求平均值(指针的使用)
- “行到水穷处,坐看云起时.“
- PHP获取本月起始和终止时间戳
- linux动态ip 搭建什么服务,怎么给Linux系统配置动态IP服务
- 【系列7】使用Dockerfile创建带mysql5.7的Centos Docker镜像1
- P2805 [NOI2009]植物大战僵尸
- springBoot事物
- phpexcel 数字格式_将文本转换为phpexcel中的数字格式
- 听说你想做一份高级的可视化图表?
- Tensorflow+Keras+VGG19 猫狗大战分类
- IDEA Translation插件,有道智云(有道翻译)应用ID,密钥申请教程
- php dwg转pdf文件怎么打开,CAD转PDF怎么转为黑白的PDF文件
- nlohmann json用法
- 安卓chrome插件开发!你有过迷茫吗?最全的BAT大厂面试题整理
- 【HTML】元素的 alt 和 title 有什么区别?
- matlab二元多项式求值,matlab多项式代入求值
热门文章
- Nebula Graph安装
- 五、Python复习教程(重点)-爬虫框架实战
- 百度文库文档免下载券免费下载方法
- XCodeGhost 病毒检查方法
- 音响白噪音测试软件,如何获取白噪音_音箱_音频新闻-中关村在线
- Mac最好用的SSH工具———SecureCRT使用以及下载
- Eclipse的使用-Eclipse的简单使用,需要的来看看吧!
- Oracle 12.2 ORA-01017问题处理
- Bongiovi DPS for Mac - 优秀的声音增强软件
- mysql物流管理系统_物流配送中心管理系统(SSM+MYSQL)