首页 > 代码库 > 10、代码块、构造代码块、静态代码块及main方法之间的关系

10、代码块、构造代码块、静态代码块及main方法之间的关系

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方法>构造代码块>构造方法。

  

10、代码块、构造代码块、静态代码块及main方法之间的关系