static总结

目录内容

static关键字
静态初始化块

首先来说一个凡是

凡是用static修饰的内容,具有以下两个特性:
1、与类有关,与对象无关;
2、一定会在加载期有特殊动作;

因为 static 修饰的属性在内存上没有存放在每个对象身上,所以不是一个对象一个属性,而是全类共享一个属性!存放在数据段的静态区当中,只有一个。
而由于static修饰的属性与对象无关,所以可以直接使用类名**.**该属性进行访问,不用产生对象。
且:static修饰的属性是在加载期的时候产生的,并完成初始化;

什么时候使用static修饰呢?

1、必须要全类共享唯一值的属性,才能使用static修饰;
2、由1可以知道,常量可以直接使用static修饰;

小结:
1、用static修饰的方法可以直接用 “类名.” 的方式进行访问,当然也可以用 “对象.” 的方式访问;
2、静态方法不能访问本类的非静态属性,当然也不能调用本类的其他非静态方法,但是非静态方法可以访问本类的静态方法,或调用本类的非静态方法;甚至静态方法里面不能写super或this;
3、在加载期,会首先加载一个类的静态方法,然后再加载非静态方法;
4、通常我们只把工具类的工具方法设计为static的;
5、构造方法不能用static修饰,因为构造方法与对象息息相关;

静态初始化块

static修饰初始化块,就是静态初始化块;
例:
`static{

		指令集;

}
初始化块:
初始化块就是一个没有方法声明,只有方法实现的代码块!他会在对象产生的时候,被自动调用;每产生一个对象被调用一次;通常里面的代码是产生对象要做一些初始化准备工作—被称为初始化块,也叫实例初始化块;

而静态初始化块就是在实例初始化块前面加上static修饰的;与实例初始化块相比,静态初始化块只在第一次调用时被加载,之后不再被加载;静态初始化块不能调用this或super,以及本类的对象属性或对象行为;
用途:
在很多工程项目中,如果需要在加载期完成资源的开启,空间的划分,线程池或链接通道的建立,都会选择写在静态初始化当中;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值