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
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-23 00:34:48