实例方法 VS 类方法

用static修饰的是类方法,否则是实例方法。

当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,在该类创建对象后,才分配。从而实例方法可以被类创建的任何对象调用执行,注意,当类创建第一个对象时就分配入口地址,当再创建对象时不分配。即方法的入口地址被所有对象共享,当所有的对象都不存在时,方法的入口地址才被取消。

        而类中的类方法,在该类被加载到内存时,就分配了相应的入口地址。类方法的入口地址直到程序退出才被取消。类方法不仅可以被类创建的所有对象调用,也可以通过类名调用。而实例方法不可以通过类名调用。

在Java语言中,类中的类方法,不可以操作实例变量,也不可以调用实例方法,因为在类创建对象之前,实例变量没有内存空间,实例方法没有入口地址。

如果一个方法不需要操作实例成员变量就可以实现某种功能,就可以考虑声明为类方法,避免创建对象浪费内存!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值