static 关键字

2020-04-27  本文已影响0人  Android_冯星

把一个变量声明为静态变量通常基于以下三个目的:

在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的。
static修饰表示静态的,在类加载时JVM会把它放到方法区,被本类以及本类中所有实例所公用。在编译后所分配的内存会在一直存在,直到程序退出内存才会释放这个空间。如果一个被所有实例公用的方法被申明为static,那么就可以节省空间了,不用每个实例初始化的时候都被分配到内存。

静态变量

按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是:

静态方法

静态方法可以直接使用类名调用,静态方法中不能使用this、super,不能直接访问成员变量,成员方法,只能访问类下的静态变量、静态方法,因为实例成员和实例方法与当前对象关联,静态属于类。静态方法不能被抽象。

静态代码块

static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次

static块和static方法的使用区别

如果有些代码必须在项目启动的时候就执行,就需要使用静态代码块,这种代码是主动执行的;

需要在项目启动的时候就初始化但是不执行,在不创建对象的情况下,可以供其他程序调用,而在调用的时候才执行,这需要使用静态方法,这种代码是被动执行的。 静态方法在类加载的时候 就已经加载 可以用类名直接调用。

静态代码块和静态方法的区别是:

静态内部类和非静态内部类的区别:

上一篇下一篇

猜你喜欢

热点阅读