Java中的代码块

一、Java中的4种代码块


  1. 普通代码块

    直接在一个方法中出现的{}就称为普通代码块,例子程序如下:

 

public class CodeDemo01 {

	public static void main(String[] args) {
		
		// 普通代码块
		{
			int x = 10;
			System.out.println("x=" + x);
		}
		int x = 100;
		System.out.println("x=" + x);
	}
}
 

 

  2. 构造代码块

  直接在类中定义的没有加static关键字的代码块{}称为构造代码块,例子程序如下:

 

public class CodeDemo02 {

	public CodeDemo02() {
		System.out.println("========这是构造方法=========");
	}

	// 这是构造代码块,而且在new对象时,构造代码块优先构造方法执行
	{
		System.out.println("=========这是构造块!=========");
	}

	public static void main(String[] args) {
		new CodeDemo02();
	}
}
 

 

  3. 静态代码块

  使用static关键字声明的代码块称为静态代码块,静态块的主要目的是用来为静态属性初始化,例子程序如下:

 

public class CodeDemo03 {

	static {
		System.out.println("这是主类中的静态代码块!");
	}

	public static void main(String[] args) {
		new Demo();
	}
	
}

class Demo {

	static {
		System.out.println("这是Demo类中的静态代码块!");
	}

	{
		System.out.println("这是Demo类中的构造块!");
	}

	public Demo() {
		System.out.println("这是构造方法!");
	}
	
}
 


  静态块优先于主方法的执行,静态块优先于构造方法的执行,而且只执行一次!


  4. 同步代码块


  同步代码块主要出现在多线程中。


二、举例

      准确说块是一个作用域,就是里面的变量之类的数据的作用范围。
      其中,static{}块中的语句是属于类的本身,不属于类中的任何方法,所以在类加载的时候就开始执行。
      非静态块中的变量在{ }外是不可见的。


      看以下一个例子,仔细分析为什么有这样的结果:

public class TestSegment {
	public void m() {
		System.out.println("mmmm");// 不调用时,不能自动执行
	}

	public static void main(String[] args) {
		System.out.println("main");
	}

	static {// 静态块
		{ // 非静态块
			int i = 11111; // 此处i不影响括号外界的i
			System.out.println("ddd" + i);
		}
		int i = 222222; // 在此i与前面不重名
		System.out.println("sss" + i);
	}
}


  输出结果:

  ddd11111
  sss222222
  main

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值