Java中代码块的使用
-
代码块的定义:使用 {} 定义的一段代码。
-
代码块的四种分类:
(1)普通代码块
(2)构造块
(3)静态块
(4)同步代码块
!!!
各代码块的优先级:
1,主类中的静态代码块——在main方法之前执行;
2,非主类中的静态代码块——实例化对象之后立马执行;
3,构造块——在静态代码块之后执行;
4,构造方法
5,普通代码块。
(一)普通代码块 -
普通代码块:定义在方法中的代码块。
-
作用:避免方法中的代码量过大,避免变量名重复。
举例如下:
观察以下代码:
public class Example1{
public static void main(String[] args){
int n = 6;
System.out.println(n);
int n = 100;
System.out.println(n);
}
}
方法中已经定义了变量,就不能再定义同名的变量,编译错误。
结果如下:

这时可以使用普通代码块,修改如下:
public class Example1{
public static void main(String[] args){
//此处使用代码块,就可以出现同名变量
{
int n = 6;
System.out.println(n);
}
int n = 100;
System.out.println(n);
}
}
运行结果如下:

(二)构造块
- 构造块:定义在类中的代码块(不加修饰符)。
- 构造块优先于构造方法执行;
- 每产生一个新的对象就调用一次构造块。
举例如下:
public class Example1{
//构造块
{
System.out.println("1,类下的构造块");
}
//构造方法
public Example1(){
System.out.println("2,类下的构造方法");
}
public static void main(String[] args){
new Example1();//匿名对象
System.out.println("——————-————————————");
new Example1();//匿名对象
}
}
运行结果如下;

(三)静态块
- 静态代码块:使用static定义的代码块。
- 根据static代码块在不同类中的情况分类两类:
(1)在非主类中的 静态代码块;
(2)在主类中的静态代码块
1,在非主类中的静态代码块
- 在非主类中,静态代码块只执行一次;
- 在非主类中,静态代码块优先于构造块执行;
- 第一次实例化之后,静态代码块就已经执行。
//主类
public class Example1{
public static void main(String[] args){
new Example();
System.out.println("——————-————————————");
new Example();
}
}
//普通类
class Example{
//非主类中的静态代码块
static {
System.out.println("0,非主类下的静态代码块");
}
//构造块
{
System.out.println("1,类下的构造块");
}
//构造方法
public Example(){
System.out.println("2,类下的构造方法");
}
}
结果如下:

2,在主类中的静态代码块
- 在主类中的静态代码块,优先于main方法执行,即不需要创建实例化对象就能执行;
举例如下:
public class Example1{
//主类中的静态代码块
static {
System.out.println("0,主类下的静态代码块");
}
//构造块
{
System.out.println("1,类下的构造块");
}
//构造方法
public Example1(){
System.out.println("2,类下的构造方法");
}
public static void main(String[] args){
//new Example1();
//System.out.println("——————-————————————");
//new Example1();
}
}
结果如下:

本文深入解析Java中的四种代码块:普通代码块、构造块、静态块和同步代码块。详细阐述了它们的作用、执行顺序及应用场景,通过实例帮助理解。

被折叠的 条评论
为什么被折叠?



