调用一个类的静态方法 会不会加载这个类到JVM?

调用一个类的静态方法 会不会加载这个类到JVM,怎么查看jvm是否有这个类?

这个要对虚拟机有一定理解。 那么会不会加载呢? 答案是“一定会进行加载”。

虚拟机规范中没有明确规定类何时进行加载,由各虚拟机厂商自行去实现,但是虚拟机规范中有明确的规定,在类初始化时要求类必须先完成加载,所以我们可以从类初始化入手,我们只需要找到何时初始化,就间接知道了何时加载。 那么类何时初始化呢? 规范中规定有6种情况下,类必须初始化(也就等于必须加载),我不一一列举哪6中,我只说题主有关的这个。
当虚拟机遇到getstatic指令调用static方法时,一定会触发类初始化,也就是类一定会加载。

另外补充一点getstatic指令不仅可以访问static方法,还可以用来访问static修饰的类变量,如果是仅仅访问变量,则要分情况,如果这个变量同时又被final修饰 比如public static final String NAME="ZHANGSAN";这种情况是不会触发类加载的,因为final修饰的变量在编译期间已经把字段值ZHANGSAN写入常量池,访问时直接是从常量池取得,无需加载类。如果没有被final修饰,则还是会触发类加载

会,调用类的静态方法会引起类的初始化。至于去哪看,jvm启动参数上加这个参数 -verbose:class。

我觉得不会,没有调用构造函数初始化这个类,jvm存在的是类型信息

调用静态变量和静态方法都会加载类,静态常量不会加载类
具体加载过程依据,加载-连接-初始化
查看有没有加载可以在idea中查看