java—普通代码块,构造块,静态块的使用

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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();
	}
}

结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值