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

一、静态变量和静态函数

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值