搞懂Java的反射机制

1.什么是反射?

java的反射机制是指可以在运行状态下获取类和对象的所有属性和方法。

2.反射的作用?

1、在运行时获取一个类/对象的成员变量和方法

2、在运行时创建一个类的对象

3、在运行时判断一个对象是否属于一个类

3.反射有哪些具体的应用场景?

1、JDBC连接数据库时,使用Class.forName()通过反射加载数据库的驱动。

2、Spring的IOC (控制反转)
使用的就是工厂模式+反射的原理,需要使用到的类事先在配置文件中先声明,需要时根据配置的类名动态生成对象。

4.反射的缺点?

反射代码的执行速度慢,性能差,如果有其他方案可以替代,建议不使用。

5.如何获取类对象?

1、Class.forName(“xxx”)

try {clazz = Class.forName("com.reflection.User");
} catch (ClassNotFoundException e) {e.printStackTrace();
}

2、通过对象的getClass()方法

Class clazz = user.getClass();

3、直接通过类名获取类对象

Class clazz = User.class;

6.如何通过反射创建对象?

1、调用无参构造器

try {clazz = Class.forName("com.reflection.User");
} catch (ClassNotFoundException e) {e.printStackTrace();
}
Object obj = clazz.newInstance();  

2、调用有参构造器

try {clazz = Class.forName("com.reflection.User");
} catch (ClassNotFoundException e) {e.printStackTrace();
}
Constroctor constroctor = clazz.getConstructor(String.class,Integer.class);
Object obj = constroctor.newInstance("龙哥", 29);

搞懂Java的反射机制相关推荐

  1. 一篇搞懂Java多线程运行机制

    文章目录 前言 线程 并发和并行 Runnable接口 Thread类 线程的创建 原理和注意事项 为什么不直接调用run方法? 线程终止和中断 用户线程和守护线程 代码演示 前言 Java是一种支持 ...

  2. Java的反射机制,内含超简单实例代码(搞懂反射,这一篇就够了)

    一 首先来说说反射机制的概念: 程序在运行时, 对于类来说,可以知道该类的任意属性和方法: 对于对象来说,可以调用该对象的任意方法和属性: 就以上这种动态获取信息的机制就称为Java的反射机制 彻底了 ...

  3. 彻底搞懂 JS 中 this 机制

    彻底搞懂 JS 中 this 机制 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.com/jasonGeng88/blog 目录 this 是什么 this 的四种绑定规 ...

  4. 搞懂 Java HashMap 源码

    HashMap 源码分析 前几篇分析了 ArrayList , LinkedList ,Vector ,Stack List 集合的源码,Java 容器除了包含 List 集合外还包含着 Set 和 ...

  5. java 内部类定于_搞懂 JAVA 内部类

    前些天写了一篇关于 2018 年奋斗计划的文章,其实做 Android 开发也有一段时间了,文章中所写的内容,也都是在日常开发中遇到各种问题后总结下来需要巩固的基础或者进阶知识.那么本文就从内部类开刀 ...

  6. java反射通俗解释,谁来帮用通俗易懂的语言解释下java的反射机制

    谁来帮用通俗易懂的语言解释下java的反射机制以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 谁来帮用通俗易懂的语言解释 ...

  7. 彻底搞懂 JS 中 this 机制 1

    彻底搞懂 JS 中 this 机制 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.com/jasonGeng88/blog 目录 this 是什么 this 的四种绑定规 ...

  8. Java的反射机制 工厂模式综合讲解【转载自51CTO】

    2019独角兽企业重金招聘Python工程师标准>>> Java的反射机制 工厂模式综合讲解 1.什么叫反射 Java.lang.reflect包下 正常情况下我们可以通过类实例化一 ...

  9. JVM - 结合代码示例彻底搞懂Java内存区域_对象在堆-栈-方法区(元空间)之间的关系

    文章目录 Pre 示例demo 总体关系 代码示例论证 反汇编 Pre JVM - 结合代码示例彻底搞懂Java内存区域_线程栈 | 本地方法栈 | 程序计数器 中我们探讨了线程栈中的内部结构 ,大家 ...

最新文章

  1. 李飞飞、吴恩达、Bengio等人的15大顶级深度学习课程
  2. java标签多行_利用Arcade表达式显示多行标签
  3. 《大话数据结构》简体中文版勘误
  4. 单例模式示例_单例设计模式示例
  5. 赛玛共享按摩椅前端蓝色UI+分销返利+去除短信注册验证
  6. pycharm去除波浪线的方法
  7. PYQT之- QObject与线程QThread的关系
  8. coverity java_coverityamp;fortify1--Poor Error Handling: Overly Broad Catch
  9. 竖流式沉淀池集水槽设计计算_竖流沉淀池设计计算书.
  10. jvm-虚拟机栈笔记【详细】
  11. 励志语录关于奋斗青春
  12. android 小米手机播放短小音频无声音问题
  13. 大数据发展促进委员会在京成立
  14. “交警+科技”温暖返乡路
  15. 应对长尾分布的目标检测 -- Balanced Group Softmax
  16. 计算机组成原理时序发生器qd,计算机组成原理—微程序控制器组成实验
  17. 滑动轨迹 曲线 python_Python 模拟真实运动轨迹,轻松完成长跑和打卡
  18. Java Web应用开发 钱荣华、朱勇、屠凯、姜文秀
  19. 如何做自动化测试?什么是自动化测试?
  20. 视觉SLAM(一)——视觉SLAM框架

热门文章

  1. 物化视图和视图的最大区别_基于catalyst的物化视图改写引擎的实现
  2. 使用引用的方式交换数据的数值
  3. codeforces 116A-C语言解题报告
  4. C++STL与泛型编程(3)容器之分类与测试
  5. 遵循五大设计理念 打造出色设计师
  6. [GCC for C]编译选项---IDE掩盖下的天空
  7. ARM MOV和 LDR指令关系
  8. 2005年全球H.264编解码器荟萃
  9. 解决:Unexpected token (START_OBJECT), expected START_ARRAY: need JSON Array to contain As.WRAPPER_ARRA
  10. 解决: Incorrect username or password, or no permission ( Docker 方式运行 Nexus3 登陆密码不为 admin123 、重置登陆密码)