Java 静态变量,静态函数,静态代码块,构造代码块

来源:互联网 发布:手机淘宝注册 编辑:程序博客网 时间:2024/06/01 16:34

一、静态变量和静态函数

1、类加载时,先将静态成员加载入方法区中的静态存储区

2、静态变量一般用于所有对象都共有的数据,因此可以将数据设为静态,由类保存,无需每个对象都存有一份数据。

3、静态函数不能访问非静态成员变量,因为非静态成员变量是属于对象的数据,由对象创建而存在,当对象未创建时,非静态成员变量还未存在。而静态函数,随着类的加载就存储在静态存储区域,所以静态函数内不能访问非静态成员变量。

4、静态函数里面,不能存在this关键字,原因是this表示当前对象,而静态方法是随类加载存在,还未创建对象,所以不能出现this。


二、静态代码块

1、随着类的加载而执行,当执行同个类的多个对象创建时,只进行一次类的加载即可,所以静态代码块只执行一次。

2、作用:给类进行初始化。构造函数给对象进行初始化。当类无需创建对象时(类中全为静态成员),无需构造函数。当类无需对象时,可用静态代码块进行数据附初值。

Class person{static String country;static{country = "China";}}

三、构造代码块

1、给对象进行通用初始化,随着对象的创建而执行,即每创建一个对象执行一次。(注意与静态代码块区分)

Class person{private String name;{name = "啦啦啦";}}

四、静态代码块,构造代码块,构造函数的执行顺序

静态代码块>构造代码块>构造函数

0 0
原创粉丝点击