什么是static
- 在Java语言中,static表示“静态”的意思。在Java中并不存在全局变量的概念,但是可以通过static来实现一个“伪全局”的概念。static可以用于修饰成员变量和成员方法,我们将其称之为静态变量和静态方法,当然也可以是静态代码块直接通过类名来进行访问,多用于工具类中。
static的格式
- 修饰变量:static 数据类型 变量名
- 修饰方法:【访问权限修饰符】 static 方法返回值 方法名(参数列表)
- 代码块::static{}
static的访问特点
先上代码演示
![](https://img.haomeiwen.com/i17704372/8f54c324d673958c.png)
分析
- 在JVM加载机制中,静态变量是随着类加载时被完成初始化的,它在内存中仅有一个,且JVM也只会为它分配一次内存,同时类中所有的实例都共享静态变量,可以直接通过类名来访问它。非静态是随着对象的创建而加载。
- 简单来说,因为静态早于非静态加载,通过静态访问时,不一定能找到非静态。但非静态出现后,却能找到静态。
总结:
- 非静态的成员方法
- 能访问静态的成员变量
- 能访问非静态的成员变量
- 能访问静态的成员方法
- 能访问非静态的成员方法
- 静态的成员方法
- 能访问静态的成员变量
- 能访问静态的成员方法
网友评论