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

Posted 陈泽俊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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方法之间的关系的主要内容,如果未能解决你的问题,请参考以下文章

java中静态代码块构造代码块构造方法main函数的执行顺序?

静态代码块-普通代码块-构造代码块(好多图系列)

静态块main方法构造块构造方法的执行顺序

一文详解:Java中父子类静态块构造块构造方法成员变量之间的初始化先后顺序与执行先后顺序

java-普通代码块构造代码块和静态代码块的区别。

代码块练习题:看代码写程序的执行结果。