【愚公系列】2021年12月 Java教学课程 30-static关键字

网友投稿 559 2022-05-29

一、static关键字

1.static关键字概述 (理解)

static 关键字是静态的意思,是Java中的一个修饰符,可以修饰成员方法,成员变量

2.static修饰的特点 (记忆)

被类的所有对象共享

是我们判断是否使用静态关键字的条件

随着类的加载而加载,优先于对象存在

对象需要类被加载后,才能创建

可以通过类名调用

【愚公系列】2021年12月 Java教学课程 30-static关键字

也可以通过对象名调用

3.static关键字注意事项 (理解)

静态方法只能访问静态的成员

非静态方法可以访问静态的成员,也可以访问非静态的成员

静态方法中是没有this关键字

二、static关键字内存分析

静态变量存放在方法区中,并且是被所有线程所共享的。这里要说一下java堆,java堆存放的就是我们创建的一个个实例变量。

堆区:

1、存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)

2、jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身

栈区:

1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中

2、每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。

3、栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。、

方法区:

1、又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。

2、方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。

总结

在类中,用static声明的成员变量为静态成员变量,也称为类变量。 类变量的生命周期和类相同,在整个应用程序执行期间都有效。它有如下特点:

为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化。

对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!!

一般用“类名.类属性/方法”来调用。(也可以通过对象引用或类名(不需要实例化)访问静态成员。)

在static方法中不可直接访问非static的成员。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python3 API文档和源码下载
下一篇:251_Mongodb_增删改查_增_删
相关文章