编辑
2024-01-20
面试题库
0
请注意,本文编写于 368 天前,最后修改于 212 天前,其中某些信息可能已经过时。

Java中静态方法(static method)和非静态方法(instance method)之间的主要区别体现在调用方式、访问权限和用途上:

调用方式

  • 静态方法:属于类本身,通过类名直接调用,也可以通过对象实例调用(但这不是推荐的使用方式)。静态方法不能直接访问类的实例变量或实例方法,它们只能直接访问类的静态成员。
  • 非静态方法:属于类的实例(对象)。只能通过类的实例(对象)来调用。非静态方法可以直接访问类中的静态和非静态成员。

访问权限

  • 静态方法:只能直接访问类的静态变量和其他静态方法。
  • 非静态方法:既可以访问静态成员,也可以访问非静态成员(实例变量和实例方法)。

内存占用

  • 静态方法:因为静态方法属于类,所以它们在类加载的时候就存在了,不依赖于类的实例。因此,静态方法占用的内存相对较少。
  • 非静态方法:每个对象实例都有其自己的一套非静态方法副本,这可能会占用更多的内存,尤其是当创建许多对象实例的时候。

用途

  • 静态方法:通常用于工具类方法,比如数学计算、日志记录等,这些操作通常不需要对象的状态。
  • 非静态方法:用于操作对象的实例数据,或者执行依赖于对象特定状态的任务。

本文作者:whitebear

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!