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

  

原文地址:https://www.cnblogs.com/czj-zhm/p/5857518.html