Java 静态方法和普通方法的区别
静态方法是属于类的方法,而普通方法是属于对象的方法。
从调用方式来看,静态方法可以通过类名直接调用,不需要创建类的实例。例如,如果有一个类叫做 MyClass,其中有一个静态方法 staticMethod,就可以通过 MyClass.staticMethod () 来调用。而普通方法必须先创建类的实例,比如 MyClass myObj = new MyClass (); 然后通过 myObj.normalMethod () 来调用。
在内存分配方面,静态方法在类加载的时候就会被分配内存空间,并且只会分配一次。这是因为静态方法与类的实例无关,它的代码存储在静态存储区。普通方法则是在对象创建的时候,作为对象的一部分存储在堆内存中。每个对象都有自己独立的普通方法副本(在方法没有被共享的情况下)。
从访问权限上,静态方法只能访问静态成员变量和其他静态方法。这是因为非静态成员变量和方法是和对象实例相关联的,在没有对象实例的情况下,静态方法无法确定要访问哪个对象的非静态成员。普通方法可以访问静态和非静态的成员变量和方法。例如:
class MyClass {
private static int staticVar = 10;
private int nonStaticVar = 20;
public static void staticMethod() {
System.out.println(staticVar);
// 正确,能访问静态变量
}
pu
订阅专栏 解锁全文
1172

被折叠的 条评论
为什么被折叠?



