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类的静态代码块执行了 */
Class.forName();方法的执行发生了什么
于 2023-01-02 17:13:47 首次发布
这篇文章探讨了Java中的Class.forName()方法,该方法用于加载指定的类,并在类加载时执行静态代码块。它在执行时不一定会初始化类,但会确保类被加载到系统中。文中通过示例代码展示了如何使用此方法,并提到了在学习JDBC技术时此方法的重要性。
摘要由CSDN通过智能技术生成