小米Android面试题及参考答案

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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大模型大数据攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值