Q:静态变量和非静态变量之间的区别?
A:静态变量在类加载时分配内存空间,存在于方法区,被所有类共享,可直接使用类名来调用,其生命周期取决于类的生命周期。
非静态变量被实例化后才会分配内存空间,只能通过对象实例来访问,生命周期取决于对象实例的生命周期。
Q:静态方法与非静态方法之间的区别?
A:在静态方法中只能调用静态方法,访问静态变量,而不能调用非静态方法,访问非静态变量。但可通过对象实例来调用非静态方法,访问非静态变量。在非静态方法中既可以调用静态方法也可以调用非静态方法。
静态变量和非静态变量之间的区别:
- 内存
静态变量在类被加载时分配内存空间的,存在于方法区,销毁于类被卸载时。非静态变量被实例化后才会分配内存。 - 生命周期
静态变量的生命周期和类的生命周期是一样的。非静态变量的生命周期取决于实例化的类的生命周期。