java static

来源:互联网 发布:java base64类 编辑:程序博客网 时间:2024/06/05 13:43

static即为静态方法,被所有对象所共享,只有一个副本,在没有创建任何对象的前提下,可仅仅通过类本身来调用static的方法。没有this,因为它不需要依赖任何一个对象,其代码块可以出现在除了方法内部的任意一个地方。static块只会在类加载的时候被执行一次。

虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。

与C/C++中的static不同,Java中的static关键字不会影响到变量或者方法的作用域,能影响的只有private那些,因此可以通过Student.name之类来访问类中的public变量,但是private的还是无法直接访问。

类的初始化顺序:类是先加载再构造,因此先将static代码块、方法相关类进行加载,加载时顺便将相关类的父类也进行加载。加载完毕后发现main方法中调用构造方法,之后通过构造器来生成对象,此时便开始初始化其成员变量再对构造器方法进行执行。(有继承永远都是父类先行)

一般常见题型执行顺序:当实例化子类对象时,首先要加载父类的class文件进内存,静态代码块是随着类的创建而执行,所以父类静态代码块最先被执行,子类class文件再被加载,同理静态代码块被先执行;实例化子类对象要先调用父类的构造方法,而调用父类构造方法前会先执行父类的非静态代码块