类加载的时候就会去执行静态代码块的内容.
比如说:
写连接数据库的那些内容时,
经常有classforName("XXX"),用于加载一些东西,这些东西就可以写在静态代码块中.
还有一些,你想让类加载时就执行的程序也可以放在里面.
Java静态代码块的作用:Java静态代码块中的代码会在类加载JVM时运行,且只被执行一次,也就是说这些代码不需要实例化类就能够被调用.一般情况下,如果有些代码必须在项目启动的时候就执行的时候,就需要使用静态代码块.
Java静态代码块的用法:一个类可以使用不包含在任何方法体中的静态代码块,当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化.例如:
static
{
int a=0;
}
先说执行顺序:我们在new一个对象时,如果类还没加载,就需要先将类加载到内存,此时就会执行静态代码块,在创建对象时,是先执行代码块,然后执行构造器.所以静态代码块、代码块、构造器的执行顺序是:静态代码块→代码块→构造器.
再说作用:静态代码块是用于初始化类的(在加载类时执行,只执行一次),代码块是用于初始化对象的(在创建对象时执行,每次创建对象时都执行),构造器是用于创建对象的.
静态代码块:只要一用到某个类,那么这个类的静态代码块就先执行,比如:
public class Dog(){
int i = 0;
static {
i = 1;
public Dog(){
}当你new 一个Dog()对象时,首先i=
①. 会执行,然后才执行
public Dog(){}这个方法.
pulic
Dog() 是与类同名、没有返回值的方法,也就是构造方法.
构造方法的作用是用来初始化一个对象的.比如你可以在里面写
i
=
那么当你 Dog
d
new
Dog()执行这段代码的时候,是这样的:
首先
;
然后执行static 静态代码块,此时i=
最后执行public
Dog();
一 般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的
(1)在Java里,可以定义一个不需要创建对象的方法,这种方法就是静态方法.
静态代码块:有些代码必须在项目启动的时候就执行,这种代码是主动执行的(当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化)
静态方法:需要在项目启动的时候就初始化,在不创建对象的情况下,这种代码是被动执行的(静态方法在类加载的时候就已经加载
可以用类名直接调用).
两者的区别是:静态代码块是自动执行的,
静态方法是被调用的时候才执行的.
以上就是土嘎嘎小编为大家整理的java类中的静态代码块相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!