JAVA中一个类里的 static{.....} 是什么? 是静态构造函数么?

如classSqlHelper(){static{......}}请告诉我这个static是什么?还有这个static的生命周期,什么时候开始执行这个static...
class SqlHelper(){
static{
......
}

}

请告诉我这个static是什么?还有这个static的生命周期,什么时候开始执行这个static
展开
 我来答
mozartsoul
2014-02-28 · TA获得超过293个赞
知道小有建树答主
回答量:265
采纳率:0%
帮助的人:61.9万
展开全部
这个叫static代码块,这个代码块里面的语句,比构造器里面的语句执行的还要早。和static变量同时被初始化,然后再去执行构造器里的语句。:

如果你new People();那么,执行顺序如下:

public class People{
static int peopleNum=0; //先执行这个
static {
.... //再执行这里面的语句
}
public People(){
...//最后执行构造器里的语句

}
}
综上,
一个类里面,所有标注了static修饰符的花括号代码块或变量,都会按照你的书写顺序,先后被初始化。是变量的,则初始化该变量;是语句块的,则执行该语句块。

JAVA里的static代码块就跟static变量一样,你可以把这个花括号语句块也当成一个变量,他的生命周期和static变量一样长。
love爱有缘
推荐于2017-09-20 · TA获得超过1041个赞
知道小有建树答主
回答量:789
采纳率:0%
帮助的人:694万
展开全部
系统第一次调用SqlHelper这个类的时候初始化,直到Jvm结束才死亡
当虚拟机第一次遇到SqlHelper的时候,会首先分配空间,并加载静态代码块,和初始化静态属性
然后再调用构造方法,并初始化对应属性(非静态属性)!!!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zh2157524
2014-02-28 · TA获得超过462个赞
知道小有建树答主
回答量:387
采纳率:50%
帮助的人:403万
展开全部
静态块 初始化JVM的时候就会加载静态块
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
NEWDI_Summery
2014-02-28 · TA获得超过126个赞
知道答主
回答量:74
采纳率:0%
帮助的人:54.3万
展开全部
你好:
这是静态框 ,执行比构造还要早,你可以写个测试类,在静态框和构造方法里都去system.out很容易看出来~一般很少用得上~
希望能够帮到你
追问
因为我写的这个函数是 sql工具类,所以里面的变量 和 函数 全部是静态,保证不需要实例化就可以使用,是不是这样定义的话 构造函数就没有用,只能用static代替构造函数初始化?
static是在这个程序运行的时候就开始执行,
还是有其他类import的时候开始运行,
还是说第一次调用的时候运行?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d6dd1fa
2014-02-28 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:171
采纳率:0%
帮助的人:112万
展开全部
这个是静态 代码块
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式