代码块
使用{}括起来的一段代码。
根据位置不同可以分为:
普通代码块:就是定义在方法中的代码块。
构造代码块:是对所有的对象进行初始化的,所有对象的共有的特性可以在此代码块中初始化。而构造方法是对指定对象进行初始化的。只要对象一创建,那么构造代码块就会执行,并且优先于构造函数。
静态代码块:使用static关键字声明的,只执行一次,优先于构造块。随着类的加载而加载。
同步代码块:使用synchronized关键字声明的代码块,称为同步代码块。格式:synchronized(同步对象){}
[java] view plaincopy
1./**
2. * 描述人的类
3. */
4.public class Person {
5. private String name;// 属性姓名
6. private int age;// 属性年龄
7.
8. {
9. System.out.println("构造代码块");
10. }
11. static {
12. System.out.println("静态代码块");
13. }
14.
15. public Person() {// 无参构造函数
16. System.out.println("无参构造函数");
17. }
18. public void say() {
19. {
20. System.out.println("普通代码块");
21. }
22.
23. }
24.
25. public void show() {
26. synchronized (this) {
27. System.out.println("同步代码块");
28. }
29. }
30.
31. public static void main(String[] agrs) {
32. Person p = new Person();
33. p.show();
34. p.say();
35. }
36.}
37.结果:
38.静态代码块
39.构造代码块
40.无参构造函数
41.同步代码块
42.普通代码块
43.
从结果可以看出:
静态代码块优先于构造代码块执行。
构造代码块优先于构造方法执行。
普通代码块和同步代码块定义在方法中,无先后顺序。 |