Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Class.forName(“某物”)和Class.forName(“某物”).newInstance()之间的差异;_Java - Fatal编程技术网

Java Class.forName(“某物”)和Class.forName(“某物”).newInstance()之间的差异;

Java Class.forName(“某物”)和Class.forName(“某物”).newInstance()之间的差异;,java,Java,Class.forName(“某物”)和Class.forName(“某物”).newInstance()

Class.forName(“某物”)
Class.forName(“某物”).newInstance()
Class.forName("Somthing"); 
只是在内存中加载类

Class.forName("Somthing").newInstance();

在内存中加载该类,并创建由加载的
类表示的类的实例。forName只加载该类,newInstance方法调用一个新对象

Class myclass = Class.forName("someClass"); // Load the class
someClass obj = (someClass) myclass.newInstance(); // someClass obj = new someClass()

1:如果您只对类的静态块感兴趣,那么只加载类就可以了,并且会执行静态块 那么你所需要的就是

Class.forName("Somthing");
2:如果您对加载类感兴趣,执行它的静态bloacks,还想访问它的非静态部分,那么您需要一个实例 然后你需要

Class.forName("Somthing").newInstance();

超级,短小precise@JunedAhsan以及为什么我们只需要加载类。你能explain@subash在类加载时初始化某些资源,即在类的静态块内。区别显然在于调用
newInstance()
。那么,你为什么不看看这个方法的文档来了解它的功能呢?