java中static的理解

1.基础知识

static 标注的变量 叫(静态变量)

没有static标注的变量 叫实例变量(即类 new出来,才能调用的变量)

2.静态变量与实例变量的对比

static标注的变量:static在类加载时,就会创建内存空间(静态数据存储空间)(只创建一次)直到程序退出才会释放内存(只在一个内存块)。static声明的变量可以通过(类名 . 变量)直接调用,不需要实例化,举个栗子:Integer.parseInt()、Long.parseLong(),这个就是用static修饰的变量。

实例变量:在类实例化后(new后)才可以调用类中的成员(变量)注意:类多次实例化,每个对象的变量都有独自的内存,它们互不影响(用static声明的变量,不会创建新的内存块)。

3.静态方法

静态方法只能访问静态成员或方法(即static声明/标注的)因此无法调用和对象相关的关键字,如this、super

应用场景:静态方法一般当做工具方法适用如Math.sqrt(),Arrays.sort(),StringUtils.isEmpty()。

4.static代码块

static代码块在加载一个类的时候最先执行,且只执行一次。

static{这里面写逻辑,例如初始化数据}

应用场景:一般在进行初始化操作时,比如读取配置文件信息,获取当前服务器参数等

5.static内部类

简单来说就是在一个类里面,再定义一个类。这种事情我们应该经常干,一般接收json时会临时在方法下面定义一个类,来对应json中的数据做对应接收(我们。。单指我)。这时在类的前面也就是class前面加一个static,就声明了这时一个内部类。内部类只能调用static声明过得变量、方法(即静态变量/方法),如果调用普通的实例变量,会编译出错。

静态内部类非静态内部类
直接类名.成员就能用必须new 才能用
可以再类里面定义静态变量和方法不可以在类里面定义静态变量和方法
不能调用外部类的普通成员,只能调用static声明的

啥都能掉

应用场景:谁用给谁一巴掌

6.static包内导入

应用场景:直接打死

7.总结

使用static关键字修饰的变量,称为静态变量。静态变量的值是唯一的,不是不变的,在其作用范围内,只存在一个值,无论在作用域的哪里调用修改,改变的都是同一个内存地址。

巩固扩展

static final(常量) 在程序启动类加载时就已经加载完成了

static 在程序启动时 还要初始化一次后加载完成,顺序低于final

推荐两篇文章:

Java-静态成员变量值到底能不能变?_Xxhu1997的博客-CSDN博客_java静态变量可以修改吗

Java基础(六) static五大应用场景_躲不过这哀伤的博客-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值