java静态方法调用的效率

java静态方法调用的效率,java,oop,Java,Oop,我的教授说,每当我使用一个类的静态方法时,整个类都会被加载到内存中,然后执行该方法 我的问题是:如果一个类包含100个方法和50个不同的变量,并且我从该类调用了一个静态方法,那么完整的类(100个方法和50个变量)将加载到内存中,这在内存和性能方面都是低效的。java如何处理这种问题 True,当您调用静态方法时会加载类字节码(但只加载一次,而不是每次)。。调用非静态方法时也会发生同样的情况。在后一种情况下,还必须创建一个实例。因此,就你的问题而言,这是一种错误的二分法。因为Java是一种动态语

我的教授说,每当我使用一个类的静态方法时,整个类都会被加载到内存中,然后执行该方法


我的问题是:如果一个类包含100个方法和50个不同的变量,并且我从该类调用了一个静态方法,那么完整的类(100个方法和50个变量)将加载到内存中,这在内存和性能方面都是低效的。java如何处理这种问题

True,当您调用
静态
方法时会加载类字节码(但只加载一次,而不是每次)。。调用非静态方法时也会发生同样的情况。在后一种情况下,还必须创建一个实例。因此,就你的问题而言,这是一种错误的二分法。因为Java是一种动态语言和平台(使用JIT),所以在方法调用之间运行时效率可以显著提高。因此,最好编写清晰简洁的代码(即)。如果实现您的解决方案最清晰的方法是
静态方法,那么就使用它们。

无论何时使用类中的任何内容,都会加载整个类。当类被加载时,所有变量和方法都会被加载,或者只加载静态变量和静态方法?@Sotirios Delimanolis好的,在运行时加载任何内容。对于不熟悉该语言的人来说,import语句可能被限定为“任何东西”,并且不会导致类负载。@NazeerMohammad您可以从以下两个方面来回答您的问题:(1)“仅限于静态变量、方法和相关内容”和(2)它有什么区别?这些对“效率”的担忧通常没有什么价值,特别是在抽象意义上。如果您有一个想要描述的特定效率问题,那就更好了,但通常由静态方法调用触发的类加载是一个不必担心的好例子。与实际使用代码相比,加载类几乎总是非常便宜的。别担心。