1 代码块的分类:java中的代码块是指使用{}括起来的一段代码,根据位置不同可以分为四种:
普通代码块
构造快
静态代码块
同步代码块
今天主要学习前三种代码块,同步代码块在学习到多线程部分的时候再加学习。
2 普通代码块:直接定义在方法中的代码块,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public
class
CodeSpace {
public
static
void
main(String args[]){
{
int
x =
30
;
System.out.println(
"普通代码块x="
+x);
}
// System.out.println("普通代码块之外x="+x);
int
x=
10
;
System.out.println(
"普通代码块之外x="
+x);
}
}
|
3 构造快:将代码直接定义在类中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
class
CodeDemo{
{
System.out.println(
"构造快"
);
}
public
CodeDemo(){
System.out.println(
"构造方法"
);
}
};
public
class
CodeSpace {
public
static
void
main(String args[]){
new
CodeDemo();
new
CodeDemo();
new
CodeDemo();
}
}
|
运行结果表明:构造快先与构造方法执行,每实例化一个对象就执行构造块中的内容。
4 静态代码块:直接用static关键字声明的代码块
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
class
CodeDemo{
public
CodeDemo(){
System.out.println(
"构造方法"
);
}
{
System.out.println(
"构造快"
);
}
static
{
System.out.println(
"class CodeDemo 静态代码块 "
);
}
};
public
class
CodeSpace {
static
{
System.out.println(
"class CodeSpace 静态代码块"
);
}
public
static
void
main(String args[]){
new
CodeDemo();
new
CodeDemo();
new
CodeDemo();
}
}
|
执行结果分析:静态代码块先于主方法执行;在普通类中定义的静态块,在类实例化的时候执行,先于构造函数执行,且不管有多少个实例化对象产生静态代码块只执行一次,静态代码一般用来为静态属性进行初始化。