Java关键字static修饰成员变量与方法

前言

static的意思为“静态”,在我们写第一个Java程序《Hello World》的时候就用到了这个关键字,在一个java文件中的主方法就是使用的static修饰的,但是static有什么用处呢?我就以我个人的见解发表看法。
Java关键字static修饰成员变量与方法

PS:以下解释为个人的认知,暂为非专业性解释,如有语法、逻辑性错误,麻烦请指出,谢谢!

静态变量

如果一个成员变量/方法使用了static修饰之后,那么当这个类被加载到内存的时候,这些静态成员会加载到共享数据区,如果有使用static修饰的代码块也会在这个类被加载到内存的时候执行里面的代码。可以看看如下代码:

静态成员变量只会在数据共享区维护一份,而非静态成员变量则会在每个对象中维护一份。
解释:所以在上方的案例中,我们每创建一次对象,JVM都会自动执行构造代码块,构造代码块将静态成员变量count自增一次,所以每次创建对象count都会自增一次,以此达到记录对象被创建的次数。
应用场景:若一个数据需要被所有对象共享使用的时候,此时可以使用static进行修饰。
使用注意:非静态的成员变量只能使用创建对象进行访问,而不能使用类名进行直接访问。

静态方法

静态方法使用事项:

  • 静态方法可以直接调用类名或者创建对象进行调用,而非静态方法只能创建对象进行调用。
  • 静态方法可以直接访问静态的成员,但是不能直接访问非静态的成员。
  • 非静态的方法可以直接访问静态与非静态的成员。
  • 静态方法中不能出现this/super关键字。
静态方法应用场景:若一个方法内没有直接使用到非静态的成员时,那么此方法则可以使用static进行修饰。
我写了一个无实际意义的例子,仅供参考 :lol: 则请看下方代码区

后记

文章中有些地方说的不是很完全,毕竟博主现在也不是专业的人员,措辞结构不能达到专业级别,若有地方不足,麻烦请在下方评论补充一下,谢谢!
    A+
所属分类:Java

发表评论

请在下方填写评论信息

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

表情 粗体 斜体 图片 引用 链接 删除线 下划线 插代码 签到

目前评论:10   其中:访客  10   博主  0

  1. avatar 我爱动感单车网 3  来自天朝的朋友 谷歌浏览器 Windows XP 广西桂林市 电信

    :mrgreen: 对Java一窍不通,也暂时还没兴趣学习它。

  2. avatar 爱眼博客 1  来自天朝的朋友 谷歌浏览器 Windows 7 广西玉林市 电信

    很好的技术

  3. avatar Koolight 5  来自天朝的朋友 谷歌浏览器 Windows 8.1 湖北省宜昌市 联通

    不明觉厉,厉害厉害!

  4. avatar 爱眼博客 1  来自天朝的朋友 谷歌浏览器 Windows 7 广西玉林市 电信

    都是代码呀

  5. avatar 阿洪 0  来自天朝的朋友 谷歌浏览器 Windows 10 四川省 电信

    可以