1)Java反射机制的作用
1. 在运行时判断任意一个对象所属的类
2. 在运行时构造任意一个类的对象
3. 在运行时判断任意一个类所具有的成员变量和方法
4. 在运行时调用任意一个对象的方法

2)什么是反射机制?
简单说,反射机制值得是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。

3)java反射机制提供了什么功能?
1. 在运行时能够判断任意一个对象所属的类
2. 在运行时构造任意一个类的对象
3. 在运行时判断任意一个类所具有的成员变量和方法
4. 在运行时调用任一对象的方法
5. 在运行时创建新类对象

4)哪里用到反射机制?

  1. 各种框架用的最多的就是反射
  2. 加载驱动
  3. 读取配置文件

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 反射 面试题相关推荐

  1. java反射 面试题_使用Java反射更改私有静态最终字段

    假设没有SecurityManager阻止你执行此操作,则可以使用setAccessible来绕开private并重置修饰符以摆脱final,并实际上修改private static final字段. ...

  2. JAVA反射-面试题

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

  3. 深入理解Java反射+动态代理,java开发面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起在群里探讨技术. 答: ...

  4. 【面试】Java 反射机制(常见面试题)

    文章目录 前言 一.反射是什么? 二.为什么要有反射 三.反射 API 3.1 获取 Class 对象的三种方式 3.2 获取成员变量 3.3 获取构造方法 3.4.获取非构造方法 四.实践 五.常见 ...

  5. 关于Java反射的面试题

    关于Java反射的面试题 问题:&操作符和&&操作符有什么区别? 答案:当一个&表达式在求值的时候,两个操作数都会被求值,&&更像是一个操作符的快捷方式 ...

  6. 反射创建对象_面试题汇集——java反射

    反射是动态获取信息以及动态调用对象的方法,在运行状态中,对于任意一个类,都能够知道这个类中的所有属性和方法:并且对于任意一个对象,都能够调用它的任意一个方法. 1.除了使用new创建对象之外,还可以用 ...

  7. Java面试题——Java反射

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

  8. Java反射高频面试题(附答案)

    1.除了使用new创建对象之外,还可以用什么方法创建对象? 使用Java反射可以创建对象! 2.Java反射创建对象效率高还是通过new创建对象的效率高? 通过new创建对象的效率比较高.通过反射时, ...

  9. java面试题--java反射机制

    Java反射机制的作用: 1)在运行时判断任意一个对象所属的类. 2)在运行时判断任意一个类所具有的成员变量和方法. 3)在运行时任意调用一个对象的方法 4)在运行时构造任意一个类的对象 拓展: 1. ...

  10. 前方高能!金三银四Java高级工程师面试题整理

    前言 面试时间将近两个小时(期间等待二面面试官来面我的时候等了半个多小时)面试官问的东西很多,还挖了好几个坑,一个技术点套着一个技术点的问,一定要做好万全的准备.问了一些基本层面上的技术点都答出来了, ...

最新文章

  1. tcp ssl java_SSL的TCP通信
  2. jdk 1.8 concurrenthashmap扩容原理
  3. html给文字加黑色边框,如何给显示文字加一层黑色边框
  4. mysql字符集,insert,update,delete,select
  5. 二维数组求平均值(指针的使用)
  6. “行到水穷处,坐看云起时.“
  7. PHP获取本月起始和终止时间戳
  8. linux动态ip 搭建什么服务,怎么给Linux系统配置动态IP服务
  9. 【系列7】使用Dockerfile创建带mysql5.7的Centos Docker镜像1
  10. P2805 [NOI2009]植物大战僵尸
  11. springBoot事物
  12. phpexcel 数字格式_将文本转换为phpexcel中的数字格式
  13. 听说你想做一份高级的可视化图表?
  14. Tensorflow+Keras+VGG19 猫狗大战分类
  15. IDEA Translation插件,有道智云(有道翻译)应用ID,密钥申请教程
  16. php dwg转pdf文件怎么打开,CAD转PDF怎么转为黑白的PDF文件
  17. nlohmann json用法
  18. 安卓chrome插件开发!你有过迷茫吗?最全的BAT大厂面试题整理
  19. 【HTML】元素的 alt 和 title 有什么区别?
  20. matlab二元多项式求值,matlab多项式代入求值

热门文章

  1. Nebula Graph安装
  2. 五、Python复习教程(重点)-爬虫框架实战
  3. 百度文库文档免下载券免费下载方法
  4. XCodeGhost 病毒检查方法
  5. 音响白噪音测试软件,如何获取白噪音_音箱_音频新闻-中关村在线
  6. Mac最好用的SSH工具———SecureCRT使用以及下载
  7. Eclipse的使用-Eclipse的简单使用,需要的来看看吧!
  8. Oracle 12.2 ORA-01017问题处理
  9. Bongiovi DPS for Mac - 优秀的声音增强软件
  10. mysql物流管理系统_物流配送中心管理系统(SSM+MYSQL)