JAVA静态方法和非静态方法的区别和实例

2024年11月16日 16:52
有1个网友回答
网友(1):

  1. 加载时机不同:静态是随着类的加载而加载的,非静态是随这对象的加载而加载的,即静态的产生时机要早于非静态的产生时机。因此我们说,静态方法只能访问静态对象,因为产生时机相同,而非静态方法既能访问静态变量,也能访问非静态变量。

  2. 存储区域不同:静态方法存储在静态方法区,非静态方法存储在普通方法区

  3. 销毁时间不同:静态随这类的加载而存在,加载到内存后,属于应用级别的,会常驻内存,除非jvm关闭或重启电脑,从而清空内存:),而非静态方法是属于对象的,实例化后才会分配内存,必须通过类的实例来引用。不会常驻内存,当实例对象被JVM 回收之后,也跟着消失。