Class.forName();方法的执行发生了什么

这篇文章探讨了Java中的Class.forName()方法,该方法用于加载指定的类,并在类加载时执行静态代码块。它在执行时不一定会初始化类,但会确保类被加载到系统中。文中通过示例代码展示了如何使用此方法,并提到了在学习JDBC技术时此方法的重要性。
摘要由CSDN通过智能技术生成
package com.javase.reflect;

/**
 * 研究一下:Class.forName();方法的执行发生了什么?
 *       该方法的执行会导致括号中类的加载
 *
 *   请记住:如果你只是希望一个类的静态代码块执行,而其他代码一律都不执行
 *        可以使用:
 *            Class.forName("完整类名");
 *            这个方法的执行会导致括号中类的加载,类加载时,该类中的静态代码块会被执行
 *
 * 提示:该方法后面学习JDBC技术还需要使用。
 */
public class ReflectText04 {
    public static void main(String[] args) {
        try {
            Class.forName("com.javase.reflect.MyClass");//这个方法的执行会导致类加载(MyClass类发生类加载)
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}
class MyClass{
//    类加载时静态代码块最先执行,且仅执行一次
    static {
        System.out.println("MyClass类的静态代码块执行了");
    }
}
/*
程序运行结果:
    MyClass类的静态代码块执行了
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值