Java中Static基础知识点,只看这一篇就够了

举报
花花叔叔 发表于 2022/08/12 22:43:37 2022/08/12
【摘要】 文章目录 static的作用static修饰成员变量的用法static修饰成员变量的内存原理static修饰成员方法的基本用法成员方法的分类 static修饰成员方法的内存原理static实际...

static的作用

static是静态的意思,可以修饰成员变量和成员方法。
static修饰成员变量表示该成员变量只在内存中只存储一份,可以被共享访问、修改
在这里插入图片描述

static修饰成员变量的用法

成员变量分为两种

  1. 静态成员变量(有static修饰,属于类,内存中加载一次): 常表示如在线人数信息、等需要被共享的信息,可以被共享访问
  2. 实例成员变量(无static修饰,存在于每个对象中):常表示姓名name、年龄age、等属于每个对象的信息

static修饰成员变量的内存原理

在这里插入图片描述
第一步,会加载类到方法区,并且同时将静态成员变量也加载到堆内存中。此时是不加载普通成员变量的,因为普通成员变量是隶属于对象级别的,只有创建了对象才可以生成普通成员变量。
第二步,当代码中有类名直接打点调用静态成员变量时候,直接到堆内存中找就行。
第三步,当new对象的时候,此时栈内存中会有一个地址,同时堆内存中也会开辟一块空间给对象,当然,静态成员变量也是可以通过对象打点调用的,只不过不推荐。

static修饰成员方法的基本用法

成员方法的分类

  1. 静态成员方法(有static修饰,属于类),建议用类名访问,也可以用对象访问。
    表示对象自己的行为的,且方法中需要访问实例成员的,则该方法必须申明成实例方法。
  2. 实例成员方法(无static修饰,属于对象),只能用对象触发访问。
    如果该方法是以执行一个通用功能为目的,或者需要方便访问,则可以申明成静态方法。

static修饰成员方法的内存原理

在这里插入图片描述
静态方法最初就加载到了方法区了,普通方法没有是因为普通方法隶属于对象级别的。当类名打点调用方法时候,直接就可以找到方法,同时也是可以通过对对象打点调用的。

static实际应用案例:定义工具类

  1. 工具类中定义的都是一些静态方法,每个方法都是以完成一个共用的功能为目的。
  2. 工具类的好处:一是调用方便,二是提高了代码复用
  3. 为什么工具类中的方法不用实例方法做?
    实例方法需要创建对象调用,此时用对象只是为了调用方法,这样只会浪费内存。
  4. 建议将工具类的构造器进行私有,工具类无需创建对象。
  5. 里面都是静态方法,直接用类名访问即可。

static应用知识:代码块

  1. 代码块概述
    代码块是类的5大成分之一(成员变量、构造器,方法,代码块,内部类),定义在类中方法外。
    在Java类下,使用 { } 括起来的代码被称为代码块 。
  2. 代码块分类
    在这里插入图片描述
  3. 静态代码块的作用
    如果要在启动系统时对静态数据进行初始化。
    建议使用静态代码块完成数据的初始化操作,代码优雅。

总结

不管是static修饰的成员变量还是成员方法,都是隶属于类级别的,都是可以实现共享的,相反的是隶属于对象级别的,根据不同的场合做出不同的选择。

文章来源: blog.csdn.net,作者:花花叔叔,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_52077949/article/details/123569349

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。