Java反射面试题

1 除了使用new创建对象之外,还可以用什么方法创建对象?
使用Java反射可以创建对象
2 Java反射创建对象效率高还是通过new创建对象的效率高?
通过new创建对象的效率比较高。通过反射时,先找查找类资源,使用类加载器创建,过程比较繁琐,所以效率较低
3 java反射的作用
反射机制是在运行时,对于任意一个类,都能够知道这个类的所有属性和方法
对于任意个对象,都能够调用它的任意一个方法
在java中,只要给定类的名字,就可以通过反射机制来获得类的所有信息
这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制
4 哪里会用到反射机制?
jdbc就是典型的反射
Class.forName('com.mysql.jdbc.Driver.class');//加载MySQL的驱动类
这就是反射
5 获取Class对象
有4中方法:
1. Class.forName(“类的路径”)
2. 类名.class
3. 对象名.getClass()
4. 基本类型的包装类,可以调用包装类的Type属性来获得该包装类的Class对象
6 实现Java反射的类
优点:
1. 能够运行时动态获取类的实例,提高灵活性
2. 与动态编译结合
缺点:
使用反射性能较低,需要解析字节码,将内存中的对象进行解析
解决方案:
1. 通过setAccessible(true)关闭JDK的安全检查来提升反射速度
2. 多次创建一个类的实例时,有缓存会快很多
3. ReflflectASM工具类,通过字节码生成的方式加快反射速度
4. 相对不安全,破坏了封装性(因为通过反射可以获得私有方法和属性)
7 Java 反射 API
反射API用来生成JVM中的类、接口或对象的信息
1. Class 类:反射的核心类,可以获取类的属性,方法等信息
2. Field 类:Java.lang.reflec 包中的类,表示类的成员变量,可以用来获取和设置类之中的属性值
3. Method 类: Java.lang.reflec 包中的类,表示类的方法,它可以用来获取类中的方法信息或者执行方法
4. Constructor 类: Java.lang.reflec 包中的类,表示类的构造方法
8 反射使用步骤(获取 Class 对象、调用对象方法)
1. 获取想要操作的类的 Class 对象,他是反射的核心,通过 Class 对象我们可以任意调用类的方法
2. 调用 Class 类中的方法,既就是反射的使用阶段
3. 使用反射 API 来操作这些信息
9 利用反射动态创建对象实例
1.Class对象的newInstance()
使用 Class 对象的 newInstance()方法来创建该 Class 对象对应类的实例
但是这种方法要求该 Class 对象对应的类有默认的空构造器
2.调用Constructor对象的newInstance()
先使用 Class 对象获取指定的 Constructor 对象,
再调用 Constructor 对象的 newInstance()方法来创建 Class 对象对应类的实例,
通过这种方法可以选定构造方法创建实例

005 Java反射面试题相关推荐

  1. 总结Java反射面试题(附答案)

    反射机制是程序在运行时能够获取自身的信息.在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息.今天总结了java反射面试题10道,各位java程序员可以根据这篇java反射面试题 ...

  2. Java反射面试题(2020)

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

  3. Java面试题汇总及答案2021最新(序列化含答案)

    Java面试题汇总及答案2021最新(序列化含答案) 为大家整理了2021最新的Java面试题及答案下载,这套Java面试题总汇已经汇总了Java基础面试到高级Java面试题,几乎涵盖了作为一个Jav ...

  4. java面试题_2020年1-6月份Java面试题总结,20多类1100道面试题含答案解析

    ​ 很多程序员都会担心35岁的职业危机,而数据也显示,40岁以上的程序员几乎不存在,大都转了管理岗,余下的只能被迫离职或者转行.然而,太久待在舒适区,可能连小公司的面试,都很难通过了. 程序员是最需要 ...

  5. 吐血整理 这200道阿里P6必备Java面试题,我简直太爱了

    前言 梳理了好久,总算是把面试题全部导出来了,毕竟还要上班,这次就给大家总结了一些Java开发岗位的经典面试题. 篇幅较大,阅读过程中可能会有点繁琐! 但请细细观看,文章末尾有留给大家的小惊喜!!! ...

  6. 几乎涵盖了近半年90%的Java面试题,可以肝起来了

    前言 很多人在问:八股文还有必要背吗? 近半年来大家听到的.用到的不少,带来的争议也不断. 有人奉为面试神器,全文背诵.有人觉得八股文铺天盖地实际作用不大,还害人不浅- 我觉得不是背不背八股文的问题, ...

  7. 2020年1-6月份Java面试题总结,20多类1100道面试题含答案解析

    很多程序员都会担心35岁的职业危机,而数据也显示,40岁以上的程序员几乎不存在,大都转了管理岗,余下的只能被迫离职或者转行.然而,太久待在舒适区,可能连小公司的面试,都很难通过了. 程序员是最需要将终 ...

  8. Java面试题,java四舍五入保留小数点后四位

    分享第一份Java基础-中级-高级面试集合 Java基础(对象+线程+字符+接口+变量+异常+方法) Java中级开发(底层+Spring相关+Redis+分布式+设计模式+MySQL+高并发+锁+线 ...

  9. Java面试题库,北京java工程师招聘

    面试准备 不论是校招还是社招都避免不了各种面试.笔试,如何去准备这些东西就显得格外重要. 运筹帷幄之后,决胜千里之外!不打毫无准备的仗,我觉得大家可以先从下面几个方面来准备面试: 1. 自我介绍.(介 ...

  10. 工作八年,分享整合初中高级Java面试题合集附答案(2020年最新版)

    关注微信公众号"Java精选"(w_z90110),回复关键词领取资料:如Mysql.Hadoop.Dubbo.Spring Boot等,免费领取视频教程.资料文档和项目源码. J ...

最新文章

  1. 干货 | 抖音漫画效果解密
  2. H3C S5560交换机风扇反转告警
  3. c语言二维数组表示坐标,c语言多维数组地址的表示方法
  4. The 2018 ACM-ICPC上海大都会赛 J Beautiful Numbers (数位DP)
  5. Java增强型for
  6. 移动时代软件测试团队该往哪里去?
  7. 前端学HTTP之客户端识别和cookie
  8. linux下的二进制文件查看器
  9. 信号与系统学习之第一章(系统的六大基本性质定义与判别:无记忆性、可逆性、因果性、稳定性、时不变性、线性)
  10. 数学建模——摘要篇(如何写好一篇建模论文摘要)
  11. python整人代码大全_整人代码大全
  12. C语言程序设计第五次作业
  13. 耐得住寂寞,才能守得住繁华
  14. Python 这个神器能自动计算函数斜率和梯度, 还能实现逻辑回归模型!
  15. RuntimeError: mat1 and mat2 shapes cannot be multiplied (5760x6 and 128x4)
  16. mysql分组语句的子句_MySQL 中的排序与分组 语句
  17. POJ 3107 Godfather (树的重心)
  18. 砥砺前行!就从Infortrend媒体共享存储开始
  19. 《机器人爱好者(第1辑)》——机器人领域新动态
  20. CentOS VirtualBox虚拟机 系统时间不对

热门文章

  1. 通信原理之数字调制原理
  2. 关于Loadrunner11破解的各种问题。。。泪奔。。。
  3. 亚信科技外包_外包到亚信---转正疑问 - 菜鸟@大虾的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  4. java ntp授时服务器,时间同步服务器NTP
  5. 音乐编辑软件Cubase分享:扒歌技巧教程
  6. VC2013/MFC,异常: 0xC0000005
  7. 数据库系统概论第五版(第 1 章 绪论)习题答案
  8. eclipse汉化方法
  9. Linux系统设置VIP(虚拟IP)的两种方式
  10. Java显示smart3d数据_[转][smart3d]Smart3D之手动配置 S3C 索引加载全部的OSGB瓦片数据...