6.java 代码块

7次阅读

共计 1563 个字符,预计需要花费 4 分钟才能阅读完成。

代码块
在 java 中用 {} 括起来的称为代码块,代码块可分为以下四种:

普通代码块
构造代码块
静态代码块
同步代码块

普通代码块
在方法或语句中出现的 {} 就称为普通代码块。普通代码块和一般语句的执行顺序由他们在代码中出现的次序决定,先出现先执行。
普通代码块一般过来限制变量的作用域,防止代码过多时可能产生的变量命名冲突。
示例:
public class testDemo {
public static void main(String[] args ) {
{
int x = 3;
System.out.println(“ 普通代码块中的变量 x =” + x);
}

int x = 1;
System.out.println(“ 主方法中的变量想 =” + x);

{
int y = 7;
System.out.println(“ 普通代码块中的变量 y =” + y);
}
}

}
构造代码块
在类中直接使用没有任何修饰符的 {} 声明的代码块就是构造块。
和构造函数的作用类似,都能对对象进行初始化,并且只要实例化一个对象,构造代码块都会执行一次。
构造块优先于构造函数执行,如果存在多个构造代码块,则执行顺序按照定义的顺序依次执行。
示例:
public class testDemo {
public static void main(String[] args ) {
Test t = new Test();
}
}

class Test{
{
// 构造代码块
System.out.println(“ 构造代码块 1。”);
}
// 构造函数
public Test(){
System.out.println(“ 无参构造函数。”);
}

{
// 构造代码块
System.out.println(“ 构造代码块 2。”);
}
}
输出结果:
构造代码块 1。
构造代码块 2。
无参构造函数。
静态代码块
在 java 中使用 static 关键字声明的代码块。静态块用于初始化类,为类的属性初始化。
静态代码块在类被加载的时候就运行了,而且只运行一次,并且优先于各种代码块以及构造函数。如果一个类中有多个静态代码块,会按照书写顺序依次执行。
一般情况下,如果有些代码需要在项目启动的时候就执行,这时候就需要静态代码块。比如一个项目启动需要加载的很多配置文件等资源,我们就可以都放入静态代码块中。
示例:
public class testDemo {
public static void main(String[] args ) {
Test t1 = new Test();
System.out.println(“**********”);
Test t2 = new Test();
}
}

class Test{

static {
// 静态代码块
System.out.println(“ 静态代码块 1。”);
}

// 构造函数
public Test(){
System.out.println(“ 无参构造函数。”);
}

static {
// 静态代码块
System.out.println(“ 静态代码块 2。”);
}
}

输出结果:
静态代码块 1。
静态代码块 2。
无参构造函数。
**********
无参构造函数。
同步代码块
使用 synchronized(){}包裹起来的代码块,在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性。同步代码块需要写在方法中。
代码块执行顺序
静态代码块 > 构造代码块 > 构造函数
示例:
public class testDemo {
public static void main(String[] args ) {
Test t = new Test();
}
}

class Test{

{
// 构造代码块
System.out.println(“ 构造代码块 ”);
}

// 构造函数
public Test(){
System.out.println(“ 构造函数 ”);
}

static {
// 静态代码块
System.out.println(“ 静态代码块 ”);
}

}

输出结果:
静态代码块
构造代码块
构造函数

正文完
 0