1、普通代码块:
在方法或语句中出现在{}之间的类容就称为普通代码块,简称代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”,即顺序执行。
1 /*下面第一个类时合法的,而且下面的这两个类的运行顺序是一模一样的,但一般没人这么写*/ 2 public class Test { 3 { 4 System.out.println("1"); 5 } 6 int x=1; 7 System.out.println("2"); 8 { 9 System.out.println("3"); 10 } 11 } 12 public class Test1 { 13 14 System.out.println("1"); 15 int x=1; 16 System.out.println("2"); 17 System.out.println("3"); 18 }
2、构造代码块:
最简单的来说就是构造方法中的代码块。
3、静态代码块:
一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。
1 package com.st.common.tools; 2 3 import org.hibernate.Session; 4 import org.hibernate.SessionFactory; 5 import org.hibernate.cfg.Configuration; 6 7 public class HibernateTools { 8 9 private static SessionFactory sf;// 声明一个工厂类 10 /*这就是一个静态代码块*/ 11 static{ 12 // 创建Configuration对象,用于读取xml文件 13 Configuration conf = new Configuration(); 14 conf.configure("/hibernate.cfg.xml"); 15 16 // 通过buildSessionFactory()创建SessionFactory的工厂类 17 sf = conf.buildSessionFactory(); 18 } 19 /*这是一个普通的代码块*/ 20 public static Session openSession(){ 21 // 通过openSession()获取一个会话 22 return sf.openSession(); 23 } 24 }
4、代码块、构造代码块、静态代码块及main方法在执行的时候的优先级别:(优先级从高到低)
静态代码块>mian方法>构造代码块>构造方法。