Java 反射核心:Class对象



📚 前言

Reflection(反射) 是 Java 被视为动态语言的关键。反射机制允许程序在执行期借助于 Reflection API 取得任何类的内部信息(类名,方法,接口),并能直接操作任意对象的内部属性及方法。

🔍 一、反射机制核心概念

1️⃣ Class对象:反射的基石

  • 加载完类之后,在堆内存的方法区中就产生了一个 Class 类型的对象
  • 一个类在内存中只有一个 Class 对象
  • 这个 Class 对象包含了完整的类的结构信息(就像一面镜子)。
  • 透过这面“镜子”(Class 对象)可以看到类的结构(属性、方法、构造器、实现的接口等)。
  • Class 是一个类,class 是一个关键字(描述类的类)。

反射机制示意图

2️⃣ 创建对象的五种方式

  1. new
  2. newInstance()
  3. clone()
  4. 反序列化
  5. 反射

3️⃣ 动态语言特性

  • 反射使得 Java 具备一定的动态性:程序可以在运行时根据某些条件改变自身结构。

4️⃣ 实体类

  • POJO (Plain Old Java Object)
  • Entity

🧩 二、深入 Class 类

1️⃣ 获取 Class 对象的几种方式

  • 对于每个类而言,JRE 都为其保留一个不变的 Class 类型的对象。
  • 一个 Class 对象包含了特定某个结构(class/interface/enum/annotation/primitive type/void)的有关信息。
  • Class 本身也是一个类。
  • Class 对象只能由系统建立对象。
  • 一个加载的类在 JVM 中只会有一个 Class 实例。
  • 一个 Class 对象对应的是一个加载到 JVM 中的一个 .class 文件。
  • 每个类的实例都会记得自己是由哪个 Class 实例所生成。
  • 通过 Class 可以完整地得到一个类中的所有被加载的结构。
  • Class 类是 Reflection 的根源。针对任何你想动态加载、运行的类,必须先获得相应的 Class 对象

2️⃣ Class 类的常用方法

Class类常用方法

  • 基本内置类型包装类都有一个对应的 Class 对象。
  • Spring 框架通过反射创建对象。
    Spring通过反射创建对象

3️⃣ 所有类型的 Class 对象

所有类型的Class对象


🧾 总结

反射机制的核心在于 Class 对象,它提供了在运行时探查和操作类结构的能力,是 Java 实现动态特性的关键。理解 类加载过程Class 对象的唯一性 对于掌握反射至关重要。


🎉 如果我的内容对你有帮助,请点赞👍、关注❤️、收藏⭐️。创作不易,大家的支持就是我坚持下去的动力!
鼓励


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值