Java静态方法和实例方法

一、定义
  • 方法:通俗点讲,表示一种行为的描述,一个问题的解决过程
  • 实例方法:没有使用static修饰,定义在类内部的方法
  • 静态方法:使用static修饰,定义在类内部的方法
二、区别
  • 不同点:
    1)关键字不同:有无static
    2)使用方式不同:静态方法可以直接使用,Class.method,也可以实例化后再调用,实例方法必须要实例化才能调用
    3)变量使用不同:静态方法不能直接使用成员变量,可以直接使用静态变量,实例方法可以使用静态变量和成员变量
三、小结

静态方法属于类层面,实例方法属于实例层面,类层面大于实例层面,实例方法可以获取类层面的变量,因为在类加载的时候,变量已经加载到内存

四、使用场景
  • 与类关系:静态方法一般和类没有直接关系,比如,工具类使用静态方法,实例方法一般和类有直接关系。万物存在即合理,两者之间的关系都是相对的,要联系两者,总有理由将它们扯在一起,既然静态方法还是写在一个类中,那它和类其实还是有关系的,如果放开这个理由,简单的单例模式,难道静态方法和类就没有关系了吗?只是实例方法和类直接的关系更加紧密而已
  • 效率:实例方法需要实例化对象,才能调用方法,静态方法可以直接调用,少了实例化对象所需时间,效率更高些
  • 线程安全:静态方法内部使用的静态变量无法保证线程安全,这个静态变量是一个线程共享,实例方法使用的成员变量属于当前对象,不将该对象共享出去,是一个线程安全的(哈哈)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容