码迷,mamicode.com
首页 > 编程语言 > 详细

java中的静态代码块、构造代码块、普通代码块和同步代码块总结

时间:2015-07-28 10:47:13      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

java中的4中代码块总结如下:

* 加了static的是静态代码块,在类中写了一对{}是构造代码块,在方法中写了一对{}是普通代码块,
* java中还有一种代码块是同步代码块,常用在多线程中, synchronized关键字,
* 同步代码块格式是:synchronized(同步对象){}
* 静态代码块 先于构造代码块 先于构造方法执行
* 静态代码块 先于普通代码块 先于构造方法执行

* 构造代码块和普通代码块按照程序逻辑顺序执行


package 面试题;

class HelloA{
	public HelloA() {
		System.out.println("构造方法 A");
	}
	//直接在类中定义的没有加static关键字的代码块{}称为构造代码块
	//这是构造代码块,而且在new对象时,构造代码块优先构造方法执行
	{
		System.out.println("I`m A class");
	}
	//使用static关键字声明的代码块称为静态代码块,静态块的主要目的是用来为静态属性初始化
	//静态块优先于主方法的执行,静态块优先于构造方法的执行,而且只执行一次!
	static{
		System.out.println("static A");
	}
}

//同步代码块主要出现在多线程中。
public class HelloB extends HelloA{
	public HelloB() {
//		super();//默认省略了这个调语句
		System.out.println("构造方法 B");
	}
	//构造代码块
	{
		System.out.println("I`m B class");
	}
	//静态代码块
	static{
		System.out.println("static B");
	}
	public static void main(String[] args) {
		//直接在一个方法中出现的{}就称为普通代码块
		//普通代码块
		{
			System.out.println("main方法中的普通代码块1");
		}
		new HelloB();
		//普通代码块
		{
			System.out.println("main方法中的普通代码块2");
		}
	}
}


output:

static A
static B
main方法中的普通代码块1
I`m A class
构造方法 A
I`m B class
构造方法 B
main方法中的普通代码块2


版权声明:本文为博主原创文章,未经博主允许不得转载。

java中的静态代码块、构造代码块、普通代码块和同步代码块总结

标签:

原文地址:http://blog.csdn.net/u012110719/article/details/47101269

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!