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

      

  • 相关阅读:
    GetClassLoader和GetCallerClass的使用
    Maven的生命周期和插件
    对象池原理简要描述
    Git x SVN rebase事故
    Git 二进制文件冲突解决
    Git x SVN 当前工作流程
    Laya 项目解耦
    Laya 利用JS进行反射
    Laya Tween 和 遮罩
    Laya Tween循环
  • 原文地址:https://www.cnblogs.com/czj-zhm/p/5857518.html
Copyright © 2020-2023  润新知