【面试题】什么是反射机制

博客介绍了Java反射机制,它允许程序运行时自我检查和操作内部成员,能增加程序灵活性,但使用不当会影响性能。还阐述了反射机制的功能,获取Class类的3种方法,以及Java创建对象的4种方式,包括反射机制创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

反射机制是Java语言中一个非常重要的特性,它允许程序在运行时自我检查,同时也允许对其内部的成员进行操作。由于反射机制能够实现在运行时对类进行装载,因此能够增加程序的灵活性,但是不恰当地使用反射机制,也会严重影响系统的性能。

具体而言,反射机制提供的功能主要有:

  • 得到一个对象所属的类;
  • 获取一个类的所有成员变量和方法;
  • 在运行时创建对象;
  • 在运行时调用对象的方法;

其实,反射机制非常重要的一个作用就是可以在运行时动态地创建类的对象,示例如下:

class Base{
    public void f(){
        System.out.println("Base");
    }
}
class Sub extends Base{
    public void f(){
        System.out.println("Sub");
    }
}
public class Test{
    public static void main(String[] args){
        try{//使用反射机制加载类
            Class c = Class.forName("Sub");
            Base b = (Base)c.newInstance();
            b.f();
            }catch(Exception e){
                e.printStackTrace();
            }
    }
}

/* 程序运行结果为:Sub */

在反射机制中,Class是一个非常重要的类,那么如何才能获取Class类呢?总共有如下3种方法可以获取到Class类:

  1. Class.forName (“类的路径”),如上例所示。
  2. 类名.Class。
  3. 实例.getClass()。

Java中创建对象的方式有以下4种:

  1. 通过new语句实例化一个对象;
  2. 通过反射机制创建对象。
  3. 通过clone()方法创建一个对象;
  4. 通过反序列化的方式创建对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值