代码块分类:
- 普通代码块
- 静态代码块
- 构造代码块
- 同步代码块
普通代码块:由{ } 花括号括起来的代码段。一般跟在方法名后面,作为方法体。应注意在代码块中声明变量,那么变量的生命周期和作用域就是此括号括中的部分了。
静态代码块:是指在代码块前加上static。 他的主要作用是对静态变量进行修饰或操作,达到初始化的目的。当然,和所有的静态成员一样,他同样具有静态属性,随着类的加载而存在,不需要通过创建对象就可以用。
构造代码块:是用来扩展构造函数功能的代码段,主要进行对成员变量的初始化。也可以理解为,构造函数的前奏,他会和构造函数一起,在创建对象的时候,进行对成员变量的初始化操作。
同步代码块:是指关键字synchronized所修饰的代码块,用于多线程问题的解决。他的作用是在同一时刻的时候,只能有一个线程进行访问此代码块,从而解决了同一时刻多个线程同时访问共享变量造成的问题。
以上就是几种代码块的简要介绍,有个很奇特的问题:类中含有多种代码块时,创建对象的时候谁先运行?
刚开始的时候我猜的是以代码块的代码顺序来执行。实际上是静态代码先执行,因为静态代码块在类创建的时候便已经存在,并执行初始化了,不需要等到创建对象。其次是构造代码块,就算把构造代码块写到构造函数下面,构造代码块也会先执行(所以我才会在上文说:构造代码块是构造函数的前奏),最后才是构造函数。
class codelock {
static
{
//静态代码块
}
codeblock()
{
//构造函数
}
{
//构造代码块
}
}
完结撒花~
第一次写技术博客,写的很粗糙<甚至不会贴代码...>,可能有些知识点也么有写到,各位看官可以补充一下,谢谢咯。