Static关键字相关

以下内容整理自互联网,仅用于个人学习


static静态修饰符

程序中的变量和代码都是由系统来自动分配内存的,static修饰符表示静态修饰,在类加载的时候JVM会把static修饰的变量或者方法放到方法区,被本类以及本类的所有实例共用。在编译后会一直存在,直到程序退出。

使用static修饰的变量和方法可以直接通过类名来访问。

静态代码块

static代码块在类中是独立于成员变量和成员函数代码的,它不在任何一个方法体内,JVM在类加载的时候会执行static代码块。static代码块经常用于初始化静态变量,这些代码块只会被执行一次。

静态成员变量

static成员变量在内存中只有一个内存地址,它能被本类以及本类的所有实例共用。引用方式:类 . 静态变量、对象 . 静态变量。

静态成员方法

static方法是类的方法,不需要创建对象就可以被调用。
static方法中不能使用this和super关键字,不能调用非static方法,只能访问所属类的静态成员变量和成员方法。

静态内部类

静态类只存在静态内部类一种,也就是只有内部类能使用静态修饰符。static内部类可以不依赖与外部类实例对象而被实例化,而普通的内部类需要在外部类实例化后才能实例化。
static内部类只能访问外部类中的static成员和方法。
static内部类不能与外部类有相同的名字。

总结

内部静态类不需要有指向外部类的引用。但非静态内部类需要持有对外部类的引用。非静态内部类能够访问外部类的静态和非静态成员。静态类不能访问外部类的非静态成员。他只能访问外部类的静态成员。一个非静态内部类不能脱离外部类实体被创建,一个非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面。

你可能感兴趣的:(Static关键字相关)