首先介绍一下什么是代码块!!!
看似高大上的代码块其实就是:{}
在Java中,代码块主要分为三种:
普通代码块
构造代码块
静态代码块
代码块
局部代码块
构造代码块
静态代码块
代码块运行顺序
局部代码块
局部代码块一般在方法中出现,在局部变量中定义的变量为局部变量,只在局部代码块内有意义,代码块结束,局部变量销毁
一个代码块占一个空间,代码块运行结束,内存空间自动释放
即局部代码块可以限定变量生命周期,几乎再无其他明显作用
如果有多个局部代码块,一般是按顺序运行
如下:
class Baiba{ //一下方法有三部分空间 public void Aai(){ System.out.println("局部代码块"); { System.out.println("局部局部代码块1"); } { System.out.println("局部局部代码块2"); } } } public class Text_0 { public static void main(String[] args) { Baiba B = new Baiba(); B.Aai(); } }
输出结果为:
局部代码块
局部局部代码块1
局部局部代码块2
构造代码块
构造代码块在类中方法外出现,每次调用构造方法时会在构造方法运行之前先运行,如下:
class Baiba{ public Baiba(){ System.out.println("构造方法"); } { System.out.println("构造代码块"); } } public class Text_0 { public static void main(String[] args) { Baiba B = new Baiba(); } }
输出结果为:
构造代码块
构造方法
静态代码块
静态代码块在类中方法外出现,并加上static修饰,在调用类时执行,因为时static修饰,所以静态代码块属于类,且只执行一次,常用于给类进行初始化,在构造代码块前执行
class Baiba{ { System.out.println("构造代码块"); } static { System.out.println("静态代码块1"); } } public class Text_0 { public static void main(String[] args) { Baiba B = new Baiba(); } }
输出结果为:
静态代码块1
构造代码块
代码块运行顺序
默认按照顺序为:静态代码块,构造代码块,局部代码块
当为同一种代码块时候按照代码块顺序运行
如下:
class Baiba{ public Baiba(){ System.out.println("构造方法"); } { System.out.println("构造代码块1"); } { System.out.println("构造代码块2"); } static { System.out.println("静态代码块1"); } static { System.out.println("静态代码块2"); } public void Aai(){ System.out.println("局部代码块"); { System.out.println("局部局部代码块1"); } { System.out.println("局部局部代码块2"); } } } public class Text_0 { public static void main(String[] args) { Baiba B = new Baiba(); B.Aai(); } }
运行结果为:
静态代码块1
静态代码块2
构造代码块1
构造代码块2
构造方法
局部代码块
局部局部代码块1
局部局部代码块2