我的教授说,当我从类中使用静态方法时,整个类被加载到内存中,然后执行该方法。
我的问题是:如果一个类包含100个方法和50个不同的变量,并且我从该类调用了一个静态方法。完整的类(100个方法和50个变量)被加载到内存中,这在内存方面是低效的。性能。 java如何处理这类问题?
答案 0 :(得分:3)
是的,当您调用static
方法时会加载类字节代码(但一次,而不是每次)..同样也会发生当你调用非静态方法时。在后一种情况下,还必须创建一个实例。因此,就你的问题而言,这是一种错误的二分法。因为Java是一种动态语言和平台(使用JIT),所以在方法调用之间运行时效率会显着提高。因此,最好编写清晰简洁的代码(即Write Dumb Code)。如果实现解决方案的最清晰方法是static
方法,则使用它们。