小编kar*_*vai的帖子

调用类构造函数和使用Class.forName().newInstance之间的区别

我一直试图理解使用new实例化对象与使用之间的区别Class.forName("A").newInstance();.

我已经为一个简单的类运行了以下代码,该类A显示使用Class.forname("A").newInstance()比使用just的速度慢70-100倍new A().

我很想知道为什么会有这么大的时间差异,但无法弄清楚.请有人帮我理解原因.

public class Main4test {

    public Main4test() {
    }

    static int turns = 9999999;

    public static void main(String[] args) {
        new Main4test().run();
    }

    public void run() {
        System.out.println("method1: " + method1() + "");
        System.out.println("method2:" + method2() + "");
    }

    public long method2() {
        long t = System.currentTimeMillis();
        for (int i = 0; i < turns; i++) {
            try {
                A a = (A) Class.forName("A").newInstance();
            } catch (InstantiationException …
Run Code Online (Sandbox Code Playgroud)

java reflection

20
推荐指数
2
解决办法
5702
查看次数

标签 统计

java ×1

reflection ×1